我正在流中接收图像,如下所示,该图像在接收之前已转换为 utf8 字符串 (imageBuffer.toString('utf8'))
,但是当我尝试使用以下数据创建缓冲区时,缓冲区似乎有所不同,无法重新创建图像。
msg = ����ExifII*��DuckyF��,Photoshop 3.08BIM% �� Adobed����↵→→→→↵↵ ↵ ↵↵ ��g����→ !1AQa"q�2��B#��R3ђ��$T���bCSD��%EU�r�cs��!1Q A����"a2q�B#��� ?�65�]�� ��jF(mR�$Pm�*�a��F�H7���7D�(�
console.log( typeOf msg ) => 字符串
到目前为止我已经尝试过:
let buffer = Buffer.from(msg, 'utf8');
let writable = require('fs').createWriteStream( '/home/test.jpg);
writable.write(buffer);
writable.end();
问题是:无法重现相同的图像。输出缓冲区大小与图像的输入缓冲区大小不同。
最佳答案
使用
let buffer = Buffer.from(new Uint8Array(msg));
...
关于javascript - 将utf8字符串(图像)解码到node.js中的buffer/Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55043381/