0

次のようなmogrifyバッチジョブを実行しますmogrify -path "WEBREADY\DONE" -layers merge -trim +repage -resize "1200x1200>" -define jpeg:extent=500kb -format jpg *.*

これは、背景が白い画像では問題なく機能します。しかし最近、2% のエラー率を確認し、エラーを発見しました。Mogrify は、画像が白で囲まれている Web でのみ期待どおりにトリミングされるため、隅が灰色で非常にばかげているように見えます。

解決策は次のいずれかです

  • 白以外の背景を検出します。その場合のみ - トリミングしないでください
  • または、左上隅の背景色 (JPG) を検出し、これをすべて白の背景に設定します。

これは、コマンドラインの上記の 1 コマンドで実行できますか? (そのため、最初に灰色の背景を見つけて、白に変更します)

例 - 元の画像は非常に高解像度です

4

1 に答える 1

1

次のように、左上のピクセルの色を取得できます。

convert shirt.jpg -crop 1x1+0+0 txt:
# ImageMagick pixel enumeration: 1,1,65535,srgb
0,0: (57311,57311,57311)  #DFDFDF  srgb(223,223,223)

というわけで、#DFDFDF です。

その色合いを黄色に置き換えようとすると(白が必要なのはわかっていますが、ここでは表示されません):

convert shirt.jpg -fill yellow -opaque "#DFDFDF" result.png

ここに画像の説明を入力

これで問題がわかります。背景は均一ではなく、その色がシャツにも現れます。を追加するfuzzと、より顕著になります。

convert shirt.jpg -fill yellow -fuzz 10% -opaque "#DFDFDF" result.png

ここに画像の説明を入力

左上から塗りつぶしを試みたとしても、シャツの端にその隅に似たピクセルがないことを期待する必要があります。

convert shirt.jpg -fill yellow -fuzz 5% -floodfill +0+0 "#dfdfdf" result.png

ここに画像の説明を入力

于 2016-09-06T13:24:07.080 に答える