Хорошо, если вы хотите поддержать Photoshop CS2, у меня есть что-то, что будет работать, но вполне hacky
- по меньшей мере.
Основная идея заключается в том, чтобы заставить ImageMagick делать это от имени Photoshop - и это, вероятно, быстрее, чем любой доступ к отдельным пикселям в ExtendScript Photoshop в любом случае. Таким образом, команда ImageMagick видеть пиксели текста/читабельной форме заключается в следующем:
convert out.png txt:
# ImageMagick pixel enumeration: 256,256,255,srgba
0,1: (255,0,0,0.996078) #FF0000FE srgba(255,0,0,0.996078)
1,1: (255,0,0,0.996078) #FF0000FE srgba(255,0,0,0.996078)
2,1: (255,0,0,0.996078) #FF0000FE srgba(255,0,0,0.996078)
3,1: (255,0,0,0.996078) #FF0000FE srgba(255,0,0,0.996078)
Вы можете увидеть прозрачность FE
или 0,996078 для этой строки.
Итак, если вы хотите 1 пиксель, скажем, один в 128,128, вы могли бы сделать это:
convert out.png -crop 1x1+128+128 -depth 8 txt:
# ImageMagick pixel enumeration: 1,1,255,srgba
0,0: (255,0,0,0.498039) #FF00007F srgba(255,0,0,0.498039)
и имеет непрозрачность 7F
или 0.498039.
Таким образом, чтобы понять, что вы хотите сделать, ваша предполагаемая функция getPixelARGB(doc, x, y)
будет сделать следующие шаги:
1. duplicate document `doc`
2. save duplicate as `PNG` (to preserve transparency) on somewhere like `/tmp`
3. invoke ImageMagick - see below
4. read result - see below
Итак, как вы вызываете ImageMagick и прочитать его вывод? Вы можете использовать это:
app.system("convert /tmp/tmp.png -crop 1x1+128+128 -depth 8 txt: > /tmp/result.txt")
var w = new File("/tmp/result.txt");
w.open('r');
var str = "";
while(!w.eof)
str += w.readln();
w.close();
alert(str);
Кажется, что вам нужно настроить Adobe Bridge для этого ... https://forums.adobe.com/message/5075865#5075865 –