2014-02-05 65 views
1

我花了一整天試圖寫它選擇所有的白色像素的位圖Photoshop中選擇腳本

我用了一個循環內的循環由一個通過所有像素一個迭代一個javascript(外環經歷垂直線和內部循環通過水平線)

並使用色彩採樣器來檢測像素RGB值是否接近255或不足。

無論如何,這段代碼花了很長時間才能完成 我從字面上看到顏色樣本光標一次只移動一個像素。

我發現,我可以記錄一個動作,從整個圖像中選擇一個範圍內的所有顏色,並從我的腳本中調用它,並立即生效。

我並不感到驚訝,我的方式很慢。 但提出了一個問題

爲什麼Photoshop是能夠掃描整個文檔符合使用select>的範圍和工具,如魔杖一定的標準像素,並快速選擇但我的代碼運行很慢 當然Photoshop的絕需要掃描每個單獨的像素,以實現這種效果。

+0

它的確如此,但Photoshop內核中執行此類操作的低級別代碼與JavaScript中的像素代碼解釋代碼存在很大差異。你最好找到用魔杖來做這個例程,或者按顏色(存在)挑選並調用它來做出選擇。 – Orbling

回答

1

對於Javascript不直接支持的Photoshop元素(顏色範圍選擇就是其中之一),我建議您查看一下使用Adobe Scripting Listener插件,並將腳本偵聽器的輸出用於腳本核心。

我寫了一篇關於如何利用顏色選擇here的腳本偵聽器的教程。教程使用Python,但整體概念完全相同 - 腳本監聽器甚至爲您呈現純JS文件!

這比迭代像素要快得多,因爲它可以訪問與Photoshop應用程序核心部分相同的快速工具和操作。

希望有幫助。