0

最初は黒い背景の画像が大量にあり、次に黒一色が削除され、画像にピクセル化された暗いエッジが残りました。

これらの画像をバッチ処理して、透明ピクセルに隣接する黒いピクセルを色消去するか、エッジを滑らかにして黒いエッジをギザギザにしないようにする方法を探しています。

xnview、irfanview、および GIMP がありましたが、GIMP を使用して手動で透明領域に魔法の杖を使用し、1 ピクセルずつ拡大し、黒色を消色する以外に、これを行う適切な方法が見つかりません。

何か案は?800 枚を超える画像について話しているので、バッチ処理はかなり重要です。それらは 3d モデルから自動的に生成されます。

その間ずっと探してます!

4

1 に答える 1

2

Photoshop はスクリプト可能で、AFAIK gimp も同様です。Photoshop には、vbscript、javascript、および apple(script?) のスクリプト リファレンスと、PDF 形式のインストール フォルダーに埋め込まれたサンプルがあります。ドキュメントを確認してください。

フォーラムの投稿から透明度を選択する手法を盗み、vbscript に移植しました。一時的なアクションを作成し、(渡された) 現在のアプリケーション参照で現在のレイヤーの透明度を選択します。ファイルを開く、ファイルを保存するなどの基本は、リファレンスでカバーされています。

以下の vbscript サンプルは、Photoshop を見つけて最前面に移動し、現在開いているドキュメントに透過性をロードしようとします。Obvious Man は、まだ PS を開いてドキュメントをロードしていない場合、またはドキュメントに透明度が適用されていない場合、これは失敗すると言います。YMMV。

Set appRef = CreateObject("Photoshop.Application")
appRef.BringToFront
loadTransparency appRef

    function loadTransparency(appRef)
        dim desc
        dim ref
        dim ref1

        set desc = CreateObject( "Photoshop.ActionDescriptor" )
        set ref = CreateObject( "Photoshop.ActionReference" )
        ref.putProperty appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "fsel" ) 
        desc.putReference appRef.charIDToTypeID( "null" ), ref 

        set ref1 = CreateObject( "Photoshop.ActionReference" )
        ref1.putEnumerated appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "Chnl" ), appRef.charIDToTypeID( "Trsp" )
        desc.putReference appRef.charIDToTypeID( "T   " ), ref1 

        appRef.ExecuteAction appRef.charIDToTypeID( "setd" ), desc, 3   '3 = no dialogs

    end function
于 2011-03-29T18:58:26.717 に答える