我正在使用react-native-camera拍照。拍摄的照片是16/9比例,但我需要它们在4/3。
因此我想要的是将图像裁剪为例如1920*1440
。
我使用React Native中的ImageEditor。可以找到ImageEditor
的代码here。
我的代码如下:
this.camera.capture(target)
.then((data) => {
let cropData = {
offset:{x:0,y:0},
size:{width:1920, height:1440}
};
ImageEditor.cropImage(
data.path,
cropData,
(uri) => {
this.props.captured(this.props.request, {
path: uri,
data: data.data,
longitude: position.coords.longitude,
latitude: position.coords.latitude
}
);
Actions.pop();
},
(error) => {});
})
.catch(err => {
console.error(err)
});
但上面的代码不起作用。保存的照片未被裁剪,且为1440*2560
。
有什么建议吗?
答案 0 :(得分:0)
目前尚不清楚captured()
中的代码会发生什么,但是我认为问题在于您正在将原始的data
传递给this.props.captured
。我对the docs的理解是:
如果裁剪过程成功,则裁剪后的图像将存储在ImageStore中,并且在
success
回调中返回的URI将指向存储中的图像。
因此,您应该从data
读取裁剪的图像,而不是重复使用uri