【问题标题】:React Native- Resize Image and convert to base64React Native-调整图像大小并转换为base64
【发布时间】:2016-12-15 19:15:11
【问题描述】:

所以我使用 react-native-signature-capture 来捕获签名,但我不想在编码之前缩小图像大小。我使用https://github.com/bamlab/react-native-image-resizer 调整图像大小,但现在我不知道如何将其转换为base64。我尝试使用 RN 的 ImageStore,但图像的文件路径出现错误。代码见下:

ImageResizer.createResizedImage(encoded.pathName, 200, 100, 'PNG', 80, null, encoded.pathName)
  .then((resizedImageUrl) => {
    ImageStore.getBase64ForTag(resizedImageUrl, (data) => {
      console.log(data);
    }, (err) => console.log(err));
  })
  .catch((err) => console.log('failed to resize: ' + err));

【问题讨论】:

    标签: react-native base64 image-resizing


    【解决方案1】:

    不久前解决了这个问题,忘记放我到现在为止所做的,我基本上使用上面的库和react-native-fs 来调整图像的大小并将图像检索为base64:

    handleBase64 = async (path) => {
      const resizedImageUrl = await ImageResizer.createResizedImage(path, 200, 80, 'PNG', 80, 0, RNFS.DocumentDirectoryPath);
      const base64 = await RNFS.readFile(resizedImageUrl, 'base64');
      return base64;
    }
    

    【讨论】:

      【解决方案2】:

      Matt Aft 解决方案仍然有效,尽管此后 ImageResizer 库可能已更改。对我有用的是他的答案略有改变,因为 createResizedImage 现在返回一个对象:

      handleBase64 = async (path) => {
        const resizedImage = await ImageResizer.createResizedImage(path, 200, 80, 'PNG', 80, 0, RNFS.DocumentDirectoryPath);
        const base64 = await RNFS.readFile(resizedImage.uri, 'base64');
        return base64;
      }
      

      【讨论】:

        猜你喜欢
        • 2022-10-17
        • 1970-01-01
        • 1970-01-01
        • 2015-06-11
        • 2019-07-12
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多