如何在 React Native 中使用图像文件并将其转换为 Uint8Array?
How to use and convert an image file into Uint8Array in react native?
我正在研究 React-Native-OpenPGP 的加密和解密。我想从我的文件夹(本地图像获取)/ Image url 中获取图像并将该图像转换为 Uint8Array for encryption/Decryption 。我是 React Native 的新手,找不到更好的解决方案。链接也可以提供帮助。需要一个过程给出一个图片路径,并将其转换成Uint8Array。
此外,还需要一个解决方案来将图像文件转换为二进制数据 Encryption/Decryption 。是否有可能因为 openpgp 提供了两种方法来做到这一点,一种是通过 String ,另一种是通过 Uint8Array 数据?
不知何故,在花了一天时间后,我设法通过 b64-to-blob. This attached link 帮助我将图像文件转换为 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'); , 变种 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);
}
}
第七步:然后生成密钥,通过openpgp库中的UInt8Array方法进行加解密
第 8 步: 将解密的图像转换为 base64,然后将 base64 转换为 Image,在 Imageview 中显示图像。
我正在研究 React-Native-OpenPGP 的加密和解密。我想从我的文件夹(本地图像获取)/ Image url 中获取图像并将该图像转换为 Uint8Array for encryption/Decryption 。我是 React Native 的新手,找不到更好的解决方案。链接也可以提供帮助。需要一个过程给出一个图片路径,并将其转换成Uint8Array。
此外,还需要一个解决方案来将图像文件转换为二进制数据 Encryption/Decryption 。是否有可能因为 openpgp 提供了两种方法来做到这一点,一种是通过 String ,另一种是通过 Uint8Array 数据?
不知何故,在花了一天时间后,我设法通过 b64-to-blob. This attached link 帮助我将图像文件转换为 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'); , 变种 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);
}
}
第七步:然后生成密钥,通过openpgp库中的UInt8Array方法进行加解密
第 8 步: 将解密的图像转换为 base64,然后将 base64 转换为 Image,在 Imageview 中显示图像。