私は、拡張スクリプト/javascript で Photoshop スクリプトを作成しており、ドキュメントが 1 つの色 (および透明度) のみを使用していることを確認しようとしています。私がやりたいのは、ドキュメント モードをインデックス カラーに変更してから、カラー テーブルの値を取得することです。
ドキュメント モードをインデックス カラーに変更しましたが、カラー テーブルまたはその中のカラー値にアクセスする方法がわかりません。
私の作業中の代替手段は、colorSampler を使用して各ピクセルの値を比較することですが、これは大きなドキュメントで実行するには数分かかる可能性があり、このプロジェクトでは速度が問題になります。
カラー テーブルにアクセスする方法がある場合、またはこの機能の実行にかかる時間を短縮する方法がある場合はお知らせください。
function sample_color(doc, sample_rate) {
var status = 'PASS'
var color_sampler = doc.colorSamplers.add([0,0])
var color_val = false //first (and hopefully only) color value in the document
var broke = false
for (x=1; x < doc.width; x+=sample_rate){
if (broke){
break
}
for (y=1; y < doc.height; y+=sample_rate){
color_sampler.move([UnitValue(x, 'px'), UnitValue(y, 'px')])
try{
var color = color_sampler.color //color of the current pixel
} catch(e) {
var color = false //color_sampler.color fails if the pixel is transparent
}
if (color != false){
if (color_val != false){
if (!color.isEqual(color_val)){
status = 'FAIL'
broke = true
break
}
} else {
color_val = color
}
}
}
}
color_sampler.remove()
return status
}