Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在react native中使用图像文件并将其转换为Uint8Array?_Reactjs_React Native_Openpgp_Uint8array_Openpgp.js - Fatal编程技术网

Reactjs 如何在react native中使用图像文件并将其转换为Uint8Array?

Reactjs 如何在react native中使用图像文件并将其转换为Uint8Array?,reactjs,react-native,openpgp,uint8array,openpgp.js,Reactjs,React Native,Openpgp,Uint8array,Openpgp.js,我正在为加密和解密工作。我想从我的文件夹(本地图像获取)/图像url中获取图像,并将该图像转换为Uint8Array进行加密/解密。我是一个新的本地人,无法找到更好的解决方案。链接也有帮助。需要一个进程来提供一个映像路径并将其转换为Uint8Array 此外,还需要将图像文件转换为二进制数据进行加密/解密的解决方案。openpgp提供了两种方法,一种是通过字符串,另一种是通过Uint8Array数据,这有可能吗 在花了一天的时间之后,我设法通过将一个图像文件转换为BLOB。这帮助我做到了这一点。

我正在为加密和解密工作。我想从我的文件夹(本地图像获取)/图像url中获取图像,并将该图像转换为Uint8Array进行加密/解密。我是一个新的本地人,无法找到更好的解决方案。链接也有帮助。需要一个进程来提供一个映像路径并将其转换为Uint8Array


此外,还需要将图像文件转换为二进制数据进行加密/解密的解决方案。openpgp提供了两种方法,一种是通过字符串,另一种是通过Uint8Array数据,这有可能吗

在花了一天的时间之后,我设法通过将一个图像文件转换为BLOB。这帮助我做到了这一点。我是这样做的:

步骤1:从“react-native-image-base64”导入ImgToBase64

第2步:您必须安装npm i-S base-64(用于atob、btoa中的编码和解码)

步骤3:从'base-64'导入{解码为atob,编码为btoa}

步骤4:var b64toBlob=require('b64-to-blob'),var-baseStringSample

第5步:制作一个函数,将图像转换为base64

_convertImageToBaseSixFour() { 

    ImgToBase64.getBase64String('YOUR_IMAGE_PATH') // path to your image from local storage
  .then((base64String) => {
        baseStringSample = base64String,
        })
  .catch(err => Alert.alert('Error' + err));

}
第6步:

// ****** CONVERT BASE64 TO BLOB ******* //

  _imageToBlob(){

    var byteCharacters = atob(baseStringSample);
    var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
    byteArray = new Uint8Array(byteNumbers);
    console.log("BYTEARRAY: " + byteArray);
}

} 
//****将BASE64转换为BLOB****//
_imageToBlob(){
var byteCharacters=atob(baseStringSample);
var byteNumbers=新数组(byteCharacters.length);
for(变量i=0;i
第7步:然后生成密钥,通过openpgp库中的UInt8Array方法进行加密和解密


步骤8:将解密后的图像转换为base64,然后将base64转换为图像,在Imageview中显示图像。

您是否有兴趣了解enrypt和解密图像文件的其他替代方法?您可以使用base64编码格式+AES的组合。如果您想让我为其编写一个示例解决方案,请发表评论。@Ron不,现在我想要openpgp base64编码格式+PGP。谢谢你,每当我需要其他解决方案时,你都会告诉我