本文共 3630 字,大约阅读时间需要 12 分钟。
github
http://www.jianshu.com/p/8420b08062c7
react-native-image-crop-picker是一款注重剪裁,相册单选、多选的第三方框架。在我集成了react-native-image-picker的时候发现,他的剪裁不太友好。作者推荐了这个react-native-image-crop-picker。看到搜索不到该中文的翻译,故此文作为学习总结。
我用的是魅族pro6, 实现和github作者图有点出入, 基本没有自己处理界面:我觉得还是可以接受的。
支持IOS/Android的相机,视频压缩,多个图像选择和裁剪处理。
import ImagePicker from 'react-native-image-crop-picker';
调用单图像选择器与裁剪
ImagePicker.openPicker({ width: 300, height: 400, cropping: true}) .then(image => { console.log(image);});
调用多个图像选择器
ImagePicker.openPicker({ multiple: true}) .then(images => { console.log(images);});
ImagePicker.openCamera({ width: 300, height: 400, cropping: true}) .then(image => { console.log(image);});
模块创建临时文件图像将在未来的某个地方自动清理。 如果要强制清理,可以使用clean清理所有临时文件图像,或者使用cleanSingle(path)清除单个临时文件。
ImagePicker.clean().then(() => { console.log('removed all tmp images from tmp directory');}) .catch(e => { alert(e);});
参数 | 类型 | 描述 |
---|---|---|
cropping | bool (default false) | 是否打开裁剪 |
width | number | 与cropping=true一起使用的,裁剪后的宽度 |
height | number | 与cropping=true一起使用的,裁剪后的高度 |
multiple | bool (default false) | 启用或禁用多个图像选择 |
includeBase64 | bool (default false) | 启用或禁用使用图像返回base64数据 |
cropperTintColor (android only | string (default "#424242") | 裁剪图像时,确定工具栏和其他UX元素的颜色。 使用UCrop的setToolbarColor,setActiveWidgetColor和setStatusBarColor颜色指定。 |
maxFiles (ios only) | number (default 5) | 最多能够选取的文件数,配合multiple=true |
compressVideo (ios only) | bool (default true) | 选择视频时,压缩它并将其转换为mp4 |
smartAlbums (ios only) | array (default ['UserLibrary', 'PhotoStream', 'Panoramas', 'Videos', 'Bursts']) | (智能相册列表可供选择)List of smart albums to choose from 【有点后续理解】 |
参数 | 类型 | 描述 |
---|---|---|
path | string | 选中文件的位置 |
width | number | 选中文件的宽度 |
height | number | 选中文件的高度 |
mime | string | 选中图片的MIME类型(image/jpeg, image/png) |
size | number | 所选图像大小(以字节为单位) |
data | base64 | (已选择的可选base64文件体现)Optional base64 selected file representation |
npm i react-native-image-crop-picker --savereact-native link react-native-image-crop-picker
iOS (IOS没了解,暂时没有去进行翻译)
cocoapods users Add platform :ios, '8.0'to Podfile (!important) Add pod 'RSKImageCropper' and pod 'QBImagePickerController'to Podfilenon-cocoapods users Drag and drop the ios/ImageCropPickerSDK folder to your xcode project. (Make sure Copy items if needed IS ticked) Click on project General tab Under Deployment Info set Deployment Target to 8.0 Under Embedded Binaries click + and add RSKImageCropper.framework and QBImagePicker.frameworkAndroid [可选]如果你想选择相册在你的项目中 在AndroidManifest.xml中
iOS
cocoapods users 你已经完成。 non-cocoapods users If you are using pre-built frameworks from ios/ImageCropPickerSDK , then before deploying app to production you should strip off simulator ARCHs from these, or you can add frameworks from Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/ Products/_framework_name_.framework to Embedded Binaries instead of pre-built ones. Related issue: [https://github.com/ivpusic/react-native-image-crop- picker/issues/61](https://github.com/ivpusic/react-native-image-crop-picker/issues/61) Details for second approach: 1.Remove the pre-built frameworks from Embedded Binaries 2.Build for Device 3.Add the newly built binaries for both frameworks to Embedded Binaries (located at Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/ Products/_framework_name_.framework)
基本包含的库。
Android : Native Image Picker uCropiOS: QBImagePickerController RSKImageCropper
转载地址:http://szrni.baihongyu.com/