与 Expo 配合使用的 React Native 图像裁剪工具

Posted

技术标签:

【中文标题】与 Expo 配合使用的 React Native 图像裁剪工具【英文标题】:React Native image cropping tool that works with Expo 【发布时间】:2018-08-17 14:32:09 【问题描述】:

是否有人知道在 Expo 设置中工作的 React Native 的图像裁剪工具。非常受欢迎的react-native-image-crop-picker 没有。有其他选择吗?我似乎找不到任何东西。

【问题讨论】:

你试过docs.expo.io/versions/latest/sdk/imagemanipulator??? 我要裁剪的图像不是来自相机或相机胶卷,它们是我从服务器获取的图像,因此您链接到的 Expo 图像操纵器将无法工作。跨度> 【参考方案1】:

您可以使用Expo#FileSystem 下载图像,然后使用Expo#ImageManipulator 裁剪缓存的图像 这是一个示例

/*
 * @param link string URI of the image on the server
 * @param name string Name of the image with extension
 */
_downloadAndCrop = (link, name, cropSize =  width: 200, height: 200 ) => 
    FileSystem.downloadAsync(
       link,
       name
   )
   .then(( uri ) => 
       console.log('Finished downloading to ', uri);
       //Your new cropped image
       const cropImage = ImageManipulator.manipulate(uri, [
                             crop:  
                                 originX: 0, 
                                 originY: 0, 
                                 width: cropSize.width, 
                                 height: cropSize.height 
                             
                         ], );
   )
   .catch(error => 
       console.error(error);
   );

【讨论】:

【参考方案2】:

您可以使用纵横比 4:3、16:9、1:1 等等

import  ImagePicker  from 'expo';

您是从画廊获取照片吗?

const photo = await ImagePicker.launchImageLibraryAsync(
   allowsEditing: true,
   aspect: [4, 3],
);

【讨论】:

我正在从服务器获取图像,因此很遗憾 Expo 图像操纵器无法工作。

以上是关于与 Expo 配合使用的 React Native 图像裁剪工具的主要内容,如果未能解决你的问题,请参考以下文章

我们如何将 Firebase Analytics 与基于 expo 的 react-native 应用程序一起使用

react-native-vector-icons/MaterialIcons jest-expo 快照测试错误与打字稿

使用expo的react-native消息队列

无法将 babel-plugin-module-resolver 与 expo 和 react-native 一起使用

无法使用 react-native-svg 或 Svg/expo 让 Svg 显示在 react-native 中

收件人未与任何设备React Native Expo相关联