頑張る違いをすばやく確認する別の繰り返しの間にウェブサイト ImageMagickを使用してくださいcompare
。しかし、画像の比較を拒否します異なるサイズ、角に固定された無限キャンバスを単純にシミュレートするオプションはないようです。-subimage-search
これは次の理由で私が望むものではありません。
- どの画像が大きいのかわかりません。 (Aが最も大きく、Bが最も広い画像AとBをサポートしていないようです。)
- 同じ角に画像を固定したいです。最も一致するものを検索するには、次のものが必要な場合があります。たくさん長くなり、より良い結果は得られません(この目的のために)。
現在の解決策はうまくいきますが、非効率的で気まぐれに感じられます。
max_width_1="$(identify -ping -format "%w" 1.png)"
max_width_2="$(identify -ping -format "%w" 2.png)"
max_width="$((max_width_1>max_width_2?max_width_1:max_width_2))"
max_height_1="$(identify -ping -format "%h" 1.png)"
max_height_2="$(identify -ping -format "%h" 2.png)"
max_height="$((max_height_1>max_height_2?max_height_1:max_height_2))"
convert -extent "${max_width}x${max_height}" -background transparent 1.png 1.png
convert -extent "${max_width}x${max_height}" -background transparent 2.png 2.png
答え1
変数の略語はコードの視覚的な明確さのためにのみ使用され、変更する必要はありません。実際より長い(メンテナンスに優しい)変数名。
identify
機能コードは、4つの代わりに1つのインスタンスを使用し、read
変数をロードするために使用し(xargs
コード行を節約するために非効率性を使用する)、いくつかのbash
注意事項を使用して削減できます。
read mw1 mh1 mw2 mh2 <<< $(identify -ping -format "%w %h " [12].png)
mw="$((mw1>mw2?mw1:mw2))"
mh="$((mh1>mh2?mh1:mh2))"
echo {1,1,2,2}.png | xargs -n 2 convert -extent "${mw}x${mh}" -background transparent
あるいは、変数の代わりに配列を使用する方がよりきれいになる可能性があります。
read w[1] h[1] w[2] h[2] <<< $(identify -ping -format "%w %h " [12].png)
w[0]="$((w[1]>w[2]?w[1]:w[2]))"
h[0]="$((h[1]>h[2]?h[1]:h[2]))"
echo {1,1,2,2}.png |
xargs -n 2 convert -extent "${w[0]}x${h[0]}" -background transparent