{"id":14988466,"url":"https://github.com/giantss/cordova-plugin-imagepicker","last_synced_at":"2025-04-04T23:06:49.848Z","repository":{"id":22086330,"uuid":"93008598","full_name":"giantss/cordova-plugin-ImagePicker","owner":"giantss","description":"🔥cordova相册仿微信多选插件","archived":false,"fork":false,"pushed_at":"2022-03-14T02:43:28.000Z","size":7247,"stargazers_count":358,"open_issues_count":19,"forks_count":109,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-04T23:06:45.288Z","etag":null,"topics":["cordova","cordova-plugin-imagepicker","multiimagespicker","wechat"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giantss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-01T02:34:32.000Z","updated_at":"2025-01-24T03:21:15.000Z","dependencies_parsed_at":"2022-08-07T10:01:30.771Z","dependency_job_id":null,"html_url":"https://github.com/giantss/cordova-plugin-ImagePicker","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giantss%2Fcordova-plugin-ImagePicker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giantss%2Fcordova-plugin-ImagePicker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giantss%2Fcordova-plugin-ImagePicker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giantss%2Fcordova-plugin-ImagePicker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giantss","download_url":"https://codeload.github.com/giantss/cordova-plugin-ImagePicker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261600,"owners_count":20910108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cordova","cordova-plugin-imagepicker","multiimagespicker","wechat"],"created_at":"2024-09-24T14:16:45.967Z","updated_at":"2025-04-04T23:06:49.821Z","avatar_url":"https://github.com/giantss.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cordova-plugin-ImagePicker\n\n非常感谢[南尘](https://github.com/nanchen2251)和 [banchichen](https://github.com/banchichen) 提供的源码支持 多点star✨开源不容易，谢谢。扣扣群：273613165\n\n一个支持多选，相册实现了拍照、预览、图片压缩等功能\n\n## 功能\n\n- 相册目录\n- 多选图\n- 相册内部拍照\n- 预览选中的图片\n- 图片压缩\n\n## 安装要求\n\n- Cordova Version \u003e= 6.0.0\n- Cordova-Android \u003e= 6.0.0\n- Cordova-iOS \u003e= 4.0.0\n\n## 安装\n\n - `cordova plugin add https://github.com/giantss/cordova-plugin-ImagePicker.git`\n\n\n注意：Android 项目先不要直接 build ，见 [android注意事项](#android注意事项)。\n\n## Android 视频演示\n\n- [点击查看视频(优酷)](http://v.youku.com/v_show/id_XMjg0NDg0NDIyMA==.html)\n\n## iOS 视频演示\n\n- [点击查看视频(优酷)](http://v.youku.com/v_show/id_XMjg0NDg0NTU4OA==.html)\n\n## 效果图\n\n| Android         | iOS          |\n|:---------------:|:------------:|\n| \u003cimg src=\"./screenshots/android.png\" width=\"270px\" height=\"480\"\u003e | \u003cimg src=\"./screenshots/ios.jpg\" width=\"270px\" height=\"480\"\u003e |\n\n## 使用方式\n[一个粗糙的 cordova demo](https://github.com/giantss/ImagePickerDemo)\n\n```javascript\n// 选图\nImagePicker.getPictures(function(result) {\n    alert(JSON.stringify(result));\n}, function(err) {\n    alert(err);\n}, { \n    maximumImagesCount : 9, \n    width : 1920, \n    height : 1440, \n    quality : 100 \n});\n\n// 拍照\nImagePicker.takePhoto(function(result) {\n    alert(JSON.stringify(result));\n}, function(err) {\n    alert(err);\n}, { \n    width : 1920, \n    height : 1440, \n    quality : 50 \n});\n```\n\n返回结果如下：\n```\n// 如果是拍照，images 数组中只有一个对象\n{\n    \"images\": [{\n        \"path\": \"/data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817455118.jpg\",\n        \"uri\": \"file:///data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817455118.jpg\",\n        \"width\": 720,\n        \"height\": 1280,\n        \"size\": 104871 // 文件体积(单位：字节)\n    }, {\n        \"path\": \"/data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817464525.jpg\",\n        \"uri\": \"file:///data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817464525.jpg\",\n        \"width\": 720,\n        \"height\": 1280,\n        \"size\": 109873\n    }],\n    \"isOrigin\": false // 是否原图\n}\n```\n\nionic 中使用本插件，需要声明： `declare let ImagePicker:any`\n\n\n## 参数含义\n\n| 配置参数            | 参数含义                   |\n|:------------------:|:-------------------------:|\n| maximumImagesCount | 多选限制数量，默认为9        |\n| width              | 设置输出图片的width，默认为自动   |\n| height             | 设置输出图片的height，默认为自动  |\n| quality            | 图片质量 默认80            |\n| enablePickOriginal | 允许选择原图 默认true  |\n\n### 注意：\n\n- 参数都是可选的，不传则使用默认值；\n- 如果 width \u003e 0 且 height \u003e 0：压缩的图可能比原图大或者压缩率不高（比如原图4MB，压缩后也有2MB），可以 quality 设置低一些，比如 50；\n- 如果 width \u003c 0 或 height \u003c 0：压缩逻辑接近于微信，自动选取合适的分辨率和压缩品质，推荐使用这种方式。压缩库使用的是 [Luban](https://github.com/Curzibn/Luban) 和 [Luban-iOS](https://github.com/GuoZhiQiang/Luban_iOS)。如果遇到压缩不清晰等问题，请到他们的项目上提 issues；\n- 运行时，选图界面上有“原图”单选按钮，选上之后，返回的图片是未压缩的原图\n\n## android注意事项\n\n- 先移除安装过的旧版插件\n\n- 如果 build 报下面的错\n    ```\n    error: resource android:attr/dialogCornerRadius not found\n    error: resource android:attr/fontVariationSettings not found\n    error: resource android:attr/ttcIndex not found\n    ```\n\n    请使用 [cordova-android-support-gradle-release](https://github.com/dpa99c/cordova-android-support-gradle-release) 这个插件统一项目中的 Android Support 库版本：\n    ```\n    $ cordova plugin add cordova-android-support-gradle-release  --variable ANDROID_SUPPORT_VERSION={required version}\n    ```\n    其中`{required version}` 值为类似 `26.+`，`27.+`，`28.+` 这种。\n\n- 如果你用的是 低版本 Cordova 和 Gradle，会报错不支持`implementation`\n    Cordova 7.1.0 及以下版本（对应Cordova-Android@6.3.0及以下版本），请将 `cordova-plugin-ImagePicker\\src\\android\\imagepicker.gradle` 里面的 `implementation` 修改为 `compile`，\n因为低版本的 Cordova-Android 使用的是低版本的 Gradle, 不支持 `implementation`。\n\n- 如果还是 build 不成功\n    ```\n    $ cordova platform rm android\n    ```\n    或\n    ```\n    $ cordova platform rm ios\n    ```\n    移除旧的平台，然后重新 add\n\n\n## 参考项目\n\n### 多选图片项目\n- [jeasonlzy/ImagePicker](https://github.com/jeasonlzy/ImagePicker) (Android)\n    - [nanchen2251/ImagePicker](https://github.com/nanchen2251/ImagePicker)\n    - [CysionLiu/ImagePicker](https://github.com/CysionLiu/ImagePicker)\n- [banchichen/TZImagePickerController](https://github.com/banchichen/TZImagePickerController) (iOS)\n\n### 图片压缩库\n- [nanchen2251/CompressHelper](https://github.com/nanchen2251/CompressHelper) (Android)\n- [Curzibn/Luban](https://github.com/Curzibn/Luban) (Android)\n- [GuoZhiQiang/Luban_iOS](https://github.com/GuoZhiQiang/Luban_iOS) (iOS)\n\n## 更新说明\n### v1.2.2\n- (ios)改进：ios 13 选多张图会崩溃等问题\n\n### v1.2.1\n- (Android)改进：Glide库4.10.+导致android.support库和androidx冲突的问题\n- (Android)改进：先设置单选，再设置多选，选择器却还是单选的问题\n\n### v1.1.9\n- (iOS)增加 `takePhoto` 方法，直接进入拍照\n\n### v1.1.8\n- (iOS)Luban 压缩逻辑 fix\n\n### v1.1.7\n- 更新到最新的第三方图片选择库\n- 增加 enablePickOriginal 配置项（允许选择原图，即是否显示原图勾选框）\n- (iOS)支持 HEIC 图片格式\n\n### v1.1.6\n- (Android)移除 [picasso](https://github.com/square/picasso) 引用和相关实现逻辑代码\n\n### v1.1.5\n- (iOS)取消选图支持回调函数\n\n### v1.1.4\n- 返回值增加 图片宽高和文件体积\n- (iOS)修复ios压缩某些图片模糊的问题\n\n### v1.1.3\n- (Android)修复低版本 Cordova-Android 和 Gradle 的情况下, build 出现 diamond  运算符异常的问题\n- (Android)增加 `takePhoto` 方法，直接进入拍照\n- (Android)增加失败回调，取消选图时会触发该回调\n\n### v1.1.2\n- (Android)修复部分手机图片预览页返回时，图片墙的小图全没了\n\n### v1.1.1\n\n- (Android)适配 Cordova@8、Cordova-Android@7\n- (Android)provider_paths.xml 改名，FileProvider 改名，不会与其他插件冲突，也不需要手动复制到 cordova/platform/android/res/xml/ 下\n- (Android)去除 styles.xml，改成在代码中设置样式，避免与其它插件也有这个同名的文件导致冲突\n- (Android)Glide 图片库更新到最新，支持 Gif，性能大幅提升，应该没有图片墙显示不出预览图的问题了\n- (Android)图片墙底栏上增加“原图”单选按钮\n- (iOS)修正 iOS 勾选原图是，返回的图不是原图，以及压缩图比原图大的问题\n- maximumImagesCount、width、height 等参数可选传递\n- 如果 width \u003c 0 且 height \u003c 0，则自动选取合适的分辨率和压缩比进行压缩，接近于微信的压缩逻辑\n- 修改成功回调的返回参数，原来返回图片路径数组 `['xxx', 'yyy']`，现在是 `{ images: ['xxx', 'yyy'], isOrigin: true/false }`\n\n\n## License\n\n[The MIT License (MIT)](http://www.opensource.org/licenses/mit-license.html)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiantss%2Fcordova-plugin-imagepicker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiantss%2Fcordova-plugin-imagepicker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiantss%2Fcordova-plugin-imagepicker/lists"}