native react 图片裁剪_react native之第三方库的相册相机(可裁剪可压缩等)等操作

本文介绍了如何使用react-native-image-crop-picker库在React Native应用中实现原生相册、相机操作,包括图片的选择、裁剪、压缩等功能。详细讲解了iOS和Android的配置步骤,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三方库的原生相册相机操作。第三方的react-native-image-crop-picker的功能更为完整易用(可多选、压缩、裁剪等)。

https://github.com/ivpusic/react-native-image-crop-picker //GitHub地址

这里说一下配置说明:

npm i react-native-image-crop-picker --save //安装依赖

react-native link react-native-image-crop-picker //链接原生库

ios配置权限: 注意:这里权限的值随便写,必须要写。

Xcode打开info.plist.在最下面一行点击+号(表示新增一行)或者鼠标在空白处右击Add Row.结果都是一样的新增一行.

在上一步骤的新的一行中选择Privacy-photo Library....增加访问相册的权限

注意:这里值随便写,必须要写。

重复以上步骤增加相机和麦克风的权限

权限配置后安装cocoaPods:教程在我的开源中国:https://my.oschina.net/u/3112095/blog/1553404

安装后cd进去我的RN项目,进入ios文件。执行pod init生成一个podFile文件

cd ios

pod init

打开podfile文件把TVOS等没用的删除。增加以下

platform :ios,'8.0'//这里创建的时候是什么就是什么,不用改

target 'your_project_name' do

pod 'RSKImageCropper' //主要要这句

pod 'QBImagePickerController' //主要还有这句

end

最后执行:

pod install

执行后关闭xcode。以后xcode运行项目不能打开.xcodeproj文件,运行项目的话要打开.xcworksspace的文件。否则报错找不到

Android配置:

注意:保证使用了Gradle 2.2.x以上。

app build.gradle 中添加useSupportLibrary

android {

...

defaultConfig {

...

vectorDrawables.useSupportLibrary = true

...

}

[可选] 如果使用照相机在你的项目中,AndroidManifest.xml添加

//相机权限

//写入权限

使用

导入library

import ImagePicker from 'react-native-image-crop-picker';

从图库中选择:

①调用单图选择器与裁剪

ImagePicker.openPicker({

width: 300,height: 400,cropping: true

}).then(image => {

console.log(image);

}).catch(e => {

console.log(e);

});

②选择多个图片的选择器

ImagePicker.openPicker({

multiple: true

}).then(images => {

console.log(images);

}).catch(e => {

console.log(e);

});

从照相中选择:

ImagePicker.openCamera({

width: 300,cropping: true

}).then(image => {

console.log(image);

}).catch(e => {

console.log(e);

});

裁剪图片:

ImagePicker.openCropper({

path: 'my-file-path.jpg',width: 300,height: 400

}).then(image => {

console.log(image);

}).catch(e => {

console.log(e);

});

选择清理:

模块创建临时文件图像将在未来的某个时间自动清理。 如果要强制清理,可以使用clean清理所有临时文件图像,或者使用cleanSingle(path)清除单个临时文件。

ImagePicker.clean().then(() => {

console.log('removed all tmp images from tmp directory');

}).catch(e => {

alert(e);

});

请求对象:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值