【发布时间】:2017-01-11 15:24:27
【问题描述】:
如果设置了Camera.constants.CaptureTarget.memory 目标,默认情况下react-native-camera 以手机的标准纵横比拍摄照片并以Base64 png 输出。
我正在寻找一种方法来创建 方形 照片 - 直接使用相机,或者通过转换捕获的 imagedata。不确定 React Native 是否可以实现类似的功能,或者我应该完全使用原生代码。
aspect 属性仅更改相机图像在取景器中的显示方式。
这是我的代码:
<Camera
ref={(cam) => {
this.cam = cam;
}}
captureAudio={false}
captureTarget={Camera.constants.CaptureTarget.memory}
aspect={Camera.constants.Aspect.fill}>
</Camera>;
async takePicture() {
var imagedata;
try {
var imagedata = await this.cam.capture();// Base64 png, not square
} catch (err) {
throw err;
}
return imagedata;
}
【问题讨论】:
-
查看这个内置实用程序-ImageEditor.cropImage,我没用过,但看起来你可以用它把图像裁剪成正方形。
-
看起来 ImageEditor 只适用于 ImageStore 中的图像。对于传递给 URI 参数的 Base64 图像,它会抛出
No suitable image URL loader found for (null)错误。 -
@PeterGerhat:看过github.com/ivpusic/react-native-image-crop-picker 吗?
标签: ios camera react-native base64 react-native-camera