Image 批处理将图像转换为二进制字符串

Image 批处理将图像转换为二进制字符串,image,encoding,binary,adobe,extendscript,Image,Encoding,Binary,Adobe,Extendscript,我正在尝试将图像批量转换为二进制字符串,以便在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\u00C

我正在尝试将图像批量转换为二进制字符串,以便在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 extendscript)。如果有人有不同语言的解决方案,我也会接受

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 
var allImages=loadFiles(“*.png”);//加载文件是我自己的功能
if(allImages==null)返回;
var folder=allImages[0]。父级;
对于(变量i=0;i
也许您应该将图像转换为Base64

在stackoverflow上有两个关于该选项的线程。我发现第二个答案更有趣


也许您应该将图像转换为Base64

在stackoverflow上有两个关于该选项的线程。我发现第二个答案更有趣


我只需将文件内容写入source()

var allImages=loadFiles(“*.png”);//加载文件是我自己的功能
if(allImages==null)返回;
var folder=allImages[0]。父级;
对于(变量i=0;inewfile.write(str.Source());//我只需要将文件内容写入Source()

var allImages=loadFiles(“*.png”);//加载文件是我自己的函数
if(allImages==null)返回;
var folder=allImages[0]。父级;
对于(变量i=0;inewfile.write(str.Source());//没有更简单的方法。我只需要在str变量.m中添加一个
toSource()
(但是谢谢没有更简单的方法。我只需要在str变量.m中添加一个
toSource()
(但是谢谢
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.Source()); // <-- Thats the trick
    newfile.close();
} // end loop i  
(new String("\u0089PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x1E\x00\x00\x00\x19\b\x06\x00\x00\x00&5\u009E\x1A\x00\x00\x00\u008DIDATx\u00DA\u00ED\u00D2\u00BB\r\u00C0 \fE\u00D1\f\u00C9\x00\u00B4H\u00F44\x14)\u00A0\u00A0\u00A1c\x00f`@Go\x01>r$+\u0091\u008B\u00DB\u00D9\x1C\u00C5\u00CA\u00E5\u009C\u00BB%\x02L\x12)\u00AC\u00B0<\\J\u00A11\u00C6,\u00CC\u0088\u00C1?8u\u00CE\u0099j\u00AD'a\u0087\x0F\u00F7\u00DEq\u00C6\u0093\u00B0\u00C3\u0087C\b\x14c<\t;k\u00D8\x18C;Yk\u00C9{?\r3\u009B\u00EF\u00ED\u00C3)\u00A5\u00D5\u00891\u00F3:\u008C/\u00C2\u00C3\u00B30\u00C3\u0084\u00F9\u00F1\u00E1\u00D6\u00DA\u00E9_\u008D\u009D\u00AF\u00C1\u00FC\x14VX\x0E~\x00i\u0096r%\u00B0\u00FF\x1E\x14\x00\x00\x00\x00IEND\u00AEB`\u0082"))