在本机反应中将图像转换为base64

Posted

技术标签:

【中文标题】在本机反应中将图像转换为base64【英文标题】:Image to base64 in react native 【发布时间】:2019-03-13 12:05:22 【问题描述】:

如何在 react native 中将本地图片转换为 base64 并上传到服务器,请帮助任何人解决此问题。我已经尝试使用谷歌上提供的名为 image-to-base64 npm 的库。

【问题讨论】:

【参考方案1】:

使用博览会 API

import  ImageManipulator  from 'expo';

const response = await ImageManipulator.manipulateAsync("file to local path", [],  base64: true )
console.log('base64res' + JSON.stringify(response));

【讨论】:

【参考方案2】:

我们可以使用图像选择器在 react native 中获取图像的 base64 字符串以供 Profile 使用等等。 在这里,我放了一段代码,这将有助于使用图像选择器功能在 react native 中获取 base64 字符串。

    selectPhotoTapped() 
const options = 
  quality: 1.0,
  maxWidth: 500,
  maxHeight: 500,
  storageOptions: 
    skipBackup: true,
  ,
;

ImagePicker.showImagePicker(options, response => 
  console.log('Response = ', response.data);

  if (response.didCancel) 
    console.log('User cancelled photo picker');
   else if (response.error) 
    console.log('ImagePicker Error: ', response.error);
   else if (response.customButton) 
    console.log('User tapped custom button: ', response.customButton);
   else 
    // let source =  uri: response.uri ;  <-- here you can get uri of image
    //  var RNFS = require('react-native-fs');
    // You can also display the image using data:
    let source =  'data:image/jpeg;base64,'+ [response.data];  //<-- here you can get image with base64string

    this.setState(
      avatarSource: source,
    );

    // this.setState(
    //   Profile_Picture:this.state.avatarSource
    // )
    // console.log(this.state.Profile_Picture)


  
);                                                                             

之后,您可以使用 onPress 事件从您的库中获取图像,但在此之前您必须授予使用本地存储中的 androidios 图像的权限。 图像选择器的安装链接 Use This Link for Installation of Image picker in react native

【讨论】:

【参考方案3】:

使用react-native-image-base64:

import ImgToBase64 from 'react-native-image-base64';

ImgToBase64.getBase64String('file://path/to/file')
  .then(base64String => 
       // Send the base64String to server
   )
  .catch(err => console.log(err));

【讨论】:

先生,你能给我一个例子吗?? 非常感谢先生,但我通过其他方式得到了它。

以上是关于在本机反应中将图像转换为base64的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中将图像宽度设置为 100% 并将高度设置为自动?

将本机 base64 反应为 pdf 展览打印

如何在本机反应中将文本放置在图像上?

如何在本机反应中制作javascript图像blob对象?

如何在本机反应中将图像读取为二进制/ blob

如何在本机反应中将捕获的图像保存到应用程序文件夹?