我正在尝试将图像批量转换为二进制字符串以在 Adobe ExtendScript 面板中使用。我想要得到的结果是一个如下所示的字符串:
\u0089PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x0F\x00\x00\x00\x0F\b\x06\x00\x00\x00;\u00D6\u0095J\x00\x00\x00IIDAT(\u0091c`\x18~ --\u00ED?\x0E\u00BC\u009F\x18\u00CD\r8p\x026\u00C5\x06@\u00EC@\x046 \u00C5\u0099\u0084\u009D\r\x14,\u00C0\u00E3T\u00FC\u00CE&\u00C1\x10\u00BC\u009AIw6\u0092f\u00D2\x02\f\u00E4\x14\"\u00FD\u008B\u00E9l\u0090S(\nm\u00BA\x02\x00\u009Dp\u00B2N\u00F1d\x1D\u00FD\x00\x00\x00\x00IEND\u00AEB`\u0082
但是我的代码生成了这个:
c289 504e 470d 1a0d 0000 000d 4948 4452
0000 000f 0000 000f 0806 0000 003b c396
c295 4a00 0000 4949 4441 5428 c291 6360
187e 202d 2dc3 ad3f 0ec2 bcc2 9f18 c38d
0d38 7002 36c3 8506 40c3 ac40 0436 20c3
85c2 99c2 84c2 9d0d 142c c380 c3a3 54c3
bcc3 8e26 c381 10c2 bcc2 9a49 7736 c292
66c3 9202 0cc3 a414 22c3 bdc2 8bc3 a96c
c290 5328 0d6d c2ba 0200 c29d 70c2 b24e
c3b1 641d c3bd 0000 0000 4945 4e44 c2ae
4260 c282
我该怎么做才能得到像第一个字符串一样的东西?这是我的代码(adobe 扩展脚本)。如果有人有不同语言的解决方案,我也会接受。
var allImages = loadFiles("*.png");// load files is my own function
if(allImages == null) return;
var folder = allImages[0].parent;
for(var i = 0; i < allImages.length;i++){
var curfile = File (allImages[i]);
curfile.open ('r');
curfile.encoding = 'BINARY';
var str = curfile.read();
curfile.close();
var newfile = new File (folder.fsName + '/' + curfile.name + '.txt');
newfile.open('w');
newfile.encoding = 'UTF-8';
newfile.write(str);
newfile.close();
} // end loop i