1

私は、拡張スクリプト/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
}
4

1 に答える 1

0

xbytor は、カラー テーブルにアクセスするためのスクリプトをいくつか作成しています。このリンクは役に立つかもしれません。

于 2013-09-04T13:22:06.713 に答える