ImageMagick(debian stableでは6.9.11-60)を使用してスキャンしたページ(jpgまたはTIFF)で約24pxを剃りたいのですが、その領域が実際に「空白」(つまり、ほとんど白色)の場合にのみ可能です。
使用しますが、-shave
その領域が白でなくてもピクセルを削除します。
それから私は考えましたが、-trim
最大24pxに制限する方法がわかりません。
Q:スキャンした画像の左右24pxを削除する方法はありますが、範囲が空の場合のみ?
IMを使わない方がいいと思ったことがまず聞きました。
答え1
私はImageMagickの専門家ではないので、一言で言うことはできませんが、実行して-trim
結果を確認することはできます。 pngを出力すると、元の画像から新しい画像のソースに関する情報が保存されます。キャンバス(jpgでも)。結果画像のxオフセットと幅を使用して、切り取りidentify
たい24ピクセルを超えるかどうかを抽出して確認できます。たとえば-fuzz 10%
、トリムが白いピクセル以上になるようにオプションで追加できます。明らかに切り取ることにした場合は、-shave
jpgを使用して出力できます。内蔵画像を使用した例は次のとおりです。
check(){
origwidth=$(convert out.png -format "%W" info:)
left=$( convert out.png -format "%X" info:)
width=$( convert out.png -format "%w" info:)
let right=origwidth-left-width
if [ "$left" -lt 24 -a "$right" -lt 24 ]
then echo "trim ok"
else echo "dont trim"
fi
}
convert rose: -resize 160x160 inset.jpg
convert granite: -resize 200x200 bg.jpg
composite inset.jpg -geometry +20+20 bg.jpg input.jpg
convert input.jpg -fuzz 10% -trim out.png
check
composite inset.jpg -geometry +30+20 bg.jpg input.jpg
convert input.jpg -fuzz 10% -trim out.png
check