4

18x18 PNG に変換する必要がある 15x15 PNG がいくつかあります。

ただし、画像全体を単純に拡大したくはありません。

私が欲しいのは、基本的に正確な古い画像を保持することですが、目に見えない/透明なピクセルの線で「埋め」ます。

では、元の画像が次のようになったとしましょう ( Xs がピクセルであると想像してください)。

XXXX
XXXX
XXXX
XXXX

私はそれを次のようなものに変えたいです(X元の画像のピクセルであり、T新しい透明なピクセルです):

XXXXT
XXXXT
XXXXT
XXXXT
TTTTT

おそらくimagemagickのようなものを使用して、コマンドラインツールを使用して(これを自動化できるように)これは可能ですか?

4

2 に答える 2

5

これは仕事をします:

convert input_file -background transparent -extent '18x18' output_file
于 2012-08-06T19:51:16.790 に答える
4

-appendImageMagick のand+append演算子でそれを行うことができます。-append垂直に追加 (下)、+append水平に追加 (右):

convert \
  -background transparent \
   15x15.png \
   null: null: null: +append \
   null: null: null: -append \
   18x18.png

null:画像は ImageMagick 組み込みです: 1 つの透過ピクセルを表します。

しかし、IM ではよくあることですが、同じ目標を達成する方法は無数にあります。

透明な部分を (右と下ではなく) 左と上に追加する必要がある場合、またはピクセルを 1 つだけ、または 3 つまたは 4 つ (2 つのエッジのみではなく) に追加する必要がある場合は、私のコマンドを変更する方法をあなたに明らかにしてください。

たぶん、Theodros の答えがより直感的だと思うかもしれません (+1 してください!)。この場合、ピクセルを追加する境界線を変更したい場合は-gravity、コマンドにパラメーターを追加できます。

convert infile -background transparent -gravity southeast -extent '18x18' outfile

以外にも、、、 ... 、 をsouth使用できます。忘れないように...northnortheasteastnorthwestcenter

于 2012-08-06T20:56:56.557 に答える