gpt4 book ai didi

javascript - 通过 Photoshop Javascript 获取像素 ARGB 颜色

转载 作者:行者123 更新时间:2023-12-03 11:31:06 25 4
gpt4 key购买 nike

我想编写一些 PS Javascript 代码来获取像素的 ARGB 颜色值。一个看起来像这样的函数:

function getPixelARGB(doc, x, y);

我搜索了一段时间,在这个网站中找到了 Mike Hale 的方法:a link

Mike Hale 提出的答案工作正常,唯一的问题是它无法获取所选像素的 alpha 值(不透明度),这就是我想知道。

有人知道如何通过 PS 脚本获取所选像素的 ARGB 值吗?提前致谢。

最佳答案

好吧,如果您想支持 Photoshop CS2,我有一些可以使用的东西,但至少可以说是相当hacky

基本想法是让 ImageMagick 代表 Photoshop 执行此操作 - 无论如何,这可能比在 Photoshop 的 ExtendScript 中访问单个像素的任何操作都要快。因此,以文本/人类可读形式查看像素的 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);

关于javascript - 通过 Photoshop Javascript 获取像素 ARGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com