Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Image 将本机base64映像响应到Uint8ClampedArray_Image_React Native_Base64_Qr Code_Uint8t - Fatal编程技术网

Image 将本机base64映像响应到Uint8ClampedArray

Image 将本机base64映像响应到Uint8ClampedArray,image,react-native,base64,qr-code,uint8t,Image,React Native,Base64,Qr Code,Uint8t,我可以在react native中从Android和iOS的CameraRoll中选择QRcode的图像,一旦用户选择了图像。我将使用类似的东西来解码,并验证它是否是真正的二维码 但是在jsQRlib上,他们说他们需要接受uint8clampedaray来解码图像并读取qr。所以我已经有了一个函数来获取base64图像。但找不到如何将其正确转换为uint8clampedaray 下面是我的代码: const handleImportScan = useCallback(async () =>

我可以在react native中从AndroidiOS的CameraRoll中选择QRcode的图像,一旦用户选择了图像。我将使用类似的东西来解码,并验证它是否是真正的二维码

但是在jsQRlib上,他们说他们需要接受uint8clampedaray来解码图像并读取qr。所以我已经有了一个函数来获取base64图像。但找不到如何将其正确转换为uint8clampedaray

下面是我的代码:

const handleImportScan = useCallback(async () => {
    try {
      const base64Image = await RNFS.readFile(
        photos[selected].node.image.uri,
        'base64',
      );
      console.log('base64img:', base64Image);
      // First argument below should be a 'Uint8ClampedArray'
      const code = jsQR(base64Image, width, height);
      if (code) {
        console.log('Found QR code', code);
      }
    } catch (error) {
      console.log('err:', error);
    }
  }, [photos, selected]);
我正在尝试查找第三方以将我的base64图像转换为uint8clampedaray

我通常使用PNG保存用户qr生成的图像

如果有人能帮忙,我将不胜感激。
谢谢

请注意,base64数据应该是base64编码的图像,而不是uri。(例如,如果您有uri,则不带'data:image/png;base64')

constbytecharacters=atob(base64data);
const byteNumbers=新数组(byteCharacters.length);
for(设i=0;i
const byteCharacters = atob(base64data);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8ClampedArray(byteNumbers);