【发布时间】:2020-11-11 06:51:56
【问题描述】:
仅限于在 Photoshop 中使用 Extendscript 我试图在同一个二进制文件中写入然后读取。 我可以写文件没问题,但我不确定读取部分哪里出错了。
数据将是十六进制的 RGB 颜色,所以我要么想从读取函数中返回数据作为数组或字符串。只有我什至无法告诉我刚刚写入的文件存在。而且我不确定我应该使用 seek() 还是 read()。困惑。
var f = new File("D:\\temp\\bin.act");
var w = write_binary(f);
var r = read_binary(w);
alert(r);
function write_binary(afile)
{
afile.encoding = "BINARY";
afile.open ("w");
for(i = 0; i < 256; i++)
{
afile.write(String.fromCharCode (i));
}
afile.close();
}
function read_binary(afile)
{
var f = new File(afile);
f.open("r");
f.encoding = "BINARY";
//var data = f.read();
//if(f.exists) alert(afile);
//alert (data);
var arr = [];
for (var i = 0; i < f.length; i+=4)
{
f.seek(i, 0);
var hex = f.readch().charCodeAt(0).toString(16);
if(hex.length === 1) hex = "0" + hex;
arr.push(hex);
}
return arr;
}
【问题讨论】:
-
看起来您没有从写入函数返回文件,但仍想将其保存到 var
w中,然后您又想在读取函数中使用该文件。那是行不通的,因为w只是未定义。 -
@mdomino 我知道我现在哪里出错了。感谢您指出这一点。
-
嗨,很抱歉有一个问题,但我想知道,你如何处理这样的事情?我也是一名艺术家,我什至不知道从哪里开始阅读二进制文件。假设我想从 abr 文件中提取特定画笔的 png。我该如何学习如何做到这一点..?
-
当我发现时,我会告诉你的。 @SergeyKritskiy 曾经有几个实用程序可以将 abr 转换为 png/tiff,abrMate 就是其中之一。
标签: binary photoshop extendscript photoshop-script