オーバーレイされた画像間の間隔/パディングが一貫しているように、背景画像の上にImageMagickで複数の画像をつなぎ合わせる最も効率的な方法を探していますか?
+append、convert -composite、convert with -page および -layers merge の使用を調査しました。
次のコマンド (convert -composite) は機能しますが、絶対オフセットを指定するために画像の寸法を事前に計算する必要があります。本当に、最初のレイヤー画像の終わりと2番目のレイヤー画像の始まりの間に10ピクセルのギャップが必要ですが、それを達成する唯一の方法は、キャンバスの左上隅からの絶対オフセットを指定することです.
convert \
background.jpg \
first.jpg -gravity Northwest -geometry +10+10 -composite \
second.jpg -geometry +300+10 -composite \
third.jpg -geometry +590+10 -composite \
output.jpg
レイヤーの「最後の」画像に対して水平オフセットを解釈できるように、ある種の演算子を探しているので+300+10
、2番目の画像と3番目の画像を指定する代わりに、オフセット+590+10
を指定できます。+10+10
CSS ポジショニングで機能-gravity Northwest
するのと同じ方法で、重力によってそれを達成できると思っていましたが、そうではありません。float: left;
私はまた、次のことでいくつかの成功を収めました:
convert \
-page +10+10 first.jpg \
-page +300+10 second.jpg \
-page +590+10 third.jpg \
-background transparent \
-layers merge \
layered.png
convert background.jpg layered.png -gravity Center -composite output.jpg
説明されている両方の手法では、絶対オフセットを事前に計算する必要がありますが、これは少し面倒です。これを行うより良い方法はありますか?