4

PNG形式で保存された、すべて同じサイズの一連の画像があります。

後で、プログラムでこれらの画像を使用し、それらを重ね合わせます。

ただし、これらの各画像の透明でない部分は、実際には非常に小さいものです。したがって、パフォーマンスを向上させるには、アルファにトリミングされた画像を使用することをお勧めします。これにより、各画像は、すべての非アルファ ピクセルを含む可能な限り最小の四角形にトリミングされます。

各画像を他の画像の上に描画する場合、トリミングした画像をオフセットして描画するだけで済みます。

画像がたくさんあるので、手動で行うべきではありません。また、プログラムの最初の起動時にやりたいことでもありません。

つまり、これを効率的に処理できるバッチ ジョブを作成しようとしています。

ImageMagick には、オフセットをキャプチャする必要があることを除いて、私が探していることを行う「トリム」があります。このオフセットは、何らかの方法で画像に付随する必要があります。つまり、オフセットをファイルに書き込むか、ファイル名に挿入します (たとえば、オフセットが 34x99 の場合、overlay123.png は overlay123-34x99.png になる可能性があります)。

仕事に最適なツールは何ですか? このようなルーチンを手動で作成することもできますが、使用できるコマンド ライン ユーティリティがいくつかあるようです。または、スクリプト言語でいくつかの行で実行する必要があります。

4

1 に答える 1

5

シンプルなトリムコマンドから始めます:

convert test.png -trim +repage test2.png

-identify演算子を追加できます:

convert test.png -trim -identify +repage test2.png

このコマンドの出力は次のようになります。

test.png PNG 800x600=>566x483 800x600+161+52 8-bit DirectClass 0.000u 0:00.004

ここで、800x600 は元の画像のサイズ、566x483 は結果の画像のサイズ、+161+52 は画像の非アルファ部分を含む四角形のオフセットです。後者の情報を使用して、目標を達成するための小さなスクリプトを作成できるはずです。

于 2013-05-25T08:52:48.037 に答える