这个项目能做什么
# react-native-image-crop-picker
一个React Native模块,用于从设备相册或相机选择图片和视频,支持裁剪、压缩、多选以及各种自定义选项。它适用于iOS和Android。
## 功能
- **相册和相机**:直接打开系统选择器或相机。
- **裁剪**:启用裁剪,可自定义尺寸、圆形覆盖层、自由样式裁剪和旋转手势(Android)。
- **多选**:一次选择多张图片或多个视频。
- **压缩**:通过最大宽度/高度/质量压缩图片,以及通过预设压缩视频(iOS)。
- **媒体类型**:按照片、视频或任意类型筛选。
- **Base64和EXIF**:可选地在响应中包含base64数据和EXIF元数据。
- **清理**:删除选择过程中创建的临时文件。
- **自定义**:广泛的UI颜色、文本和行为选项(例如,裁剪框、参考线、工具栏)。
## 安装
```bash
npm i react-native-image-crop-picker --save
```
对于iOS,运行`cd ios && pod install`。在`Info.plist`中添加使用说明(例如,`NSPhotoLibraryUsageDescription`用于照片库访问)。对于Android,在`AndroidManifest.xml`中添加必要权限(例如,相机、存储)。
## 用法
```javascript
import ImagePicker from 'react-native-image-crop-picker';
// 单张图片带裁剪
ImagePicker.openPicker({ width: 300, height: 400, cropping: true })
.then(image => console.log(image))
.catch(error => console.log(error));
// 多张图片
ImagePicker.openPicker({ multiple: true })
.then(images => console.log(images));
// 仅视频
ImagePicker.openPicker({ mediaType: 'video' })
.then(video => console.log(video));
// 相机
ImagePicker.openCamera({ width: 300, height: 400, cropping: true })
.then(image => console.log(image));
// 裁剪现有文件
ImagePicker.openCropper({ path: 'file-path.jpg', width: 300, height: 400 })
.then(image => console.log(image));
```
## 选项
关键选项包括`cropping`、`width`、`height`、`multiple`、`mediaType`、`includeBase64`、`includeExif`、`compressImageMaxWidth`、`compressImageMaxHeight`、`compressImageQuality`、`freeStyleCropEnabled`、`cropperCircleOverlay`等。完整列表请参阅README。
## 响应
每个选中的资源包含`path`、`width`、`height`、`mime`、`size`、`duration`(视频)、`data`(如果base64)、`exif`和`cropRect`等属性。iOS还提供`localIdentifier`、`sourceURL`、`creationDate`和`modificationDate`。
## 注意事项
- 对于React Native新架构,请使用版本>= 0.50.0。
- 在Android上,选择视频时避免将`cropping`设置为`true`,因为它可能隐藏相册中的视频。
- 该模块会创建临时文件;使用`clean()`或`cleanSingle(path)`删除它们。
## 许可证
MIT(由仓库隐含,但提供的README中未明确说明)。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。