2014-02-05 51 views
1

我花了一整天试图写它选择所有的白色像素的位图Photoshop中选择脚本

我用了一个循环内的循环由一个通过所有像素一个迭代一个javascript(外环经历垂直线和内部循环通过水平线)

并使用色彩采样器来检测像素RGB值是否接近255或不足。

无论如何,这段代码花了很长时间才能完成 我从字面上看到颜色样本光标一次只移动一个像素。

我发现,我可以记录一个动作,从整个图像中选择一个范围内的所有颜色,并从我的脚本中调用它,并立即生效。

我并不感到惊讶,我的方式很慢。 但提出了一个问题

为什么Photoshop是能够扫描整个文档符合使用select>的范围和工具,如魔杖一定的标准像素,并快速选择但我的代码运行很慢 当然Photoshop的绝需要扫描每个单独的像素,以实现这种效果。

+0

它的确如此,但Photoshop内核中执行此类操作的低级别代码与JavaScript中的像素代码解释代码存在很大差异。你最好找到用魔杖来做这个例程,或者按颜色(存在)挑选并调用它来做出选择。 – Orbling

回答

1

对于Javascript不直接支持的Photoshop元素(颜色范围选择就是其中之一),我建议您查看一下使用Adobe Scripting Listener插件,并将脚本侦听器的输出用于脚本核心。

我写了一篇关于如何利用颜色选择here的脚本侦听器的教程。教程使用Python,但整体概念完全相同 - 脚本监听器甚至为您呈现纯JS文件!

这比迭代像素要快得多,因为它可以访问与Photoshop应用程序核心部分相同的快速工具和操作。

希望有帮助。