如何在React Native中裁剪图像

时间:2017-05-31 13:24:56

标签: javascript react-native

我正在使用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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚captured()中的代码会发生什么,但是我认为问题在于您正在将原始的data传递给this.props.captured。我对the docs的理解是:

  

如果裁剪过程成功,则裁剪后的图像将存储在ImageStore中,并且在success回调中返回的URI将指向存储中的图像。

因此,您应该从data读取裁剪的图像,而不是重复使用uri