imagemagickの操作を画像の下半分に制限する方法は?

imagemagickの操作を画像の下半分に制限する方法は?

次のコマンドから始めて、画像の上半分-fill redと下半分に適用したいと思います。-fill green

(2回の作業後に写真を分解して-fill再組み立てできることを知っていますが、このサイトのメンバーとしてそれまで降りる必要はありません。)

convert 05.png -fuzz 20% -fill green -opaque white gr.05.png

2番目の質問です。複数の変換を1つのconvertコマンドでリンクできますか?

答え1

まあ、一つの方法は合格です。-region geometryオプション。リージョンを設定し、目的のジョブを適用し、完了したらそのリージョンをオフにし、別のリージョンを設定し、別のジョブを適用し、完了したらそのリージョンをオフにします。たとえば、800x600実行するイメージのサイズは次のとおりです。

convert input.jpg \
-fuzz 20% \
-region '800x300+0+0' -fill green -opaque white +region \
-region '800x300+0+300' -fill red -opaque white +region \
output.jpg

画像の幅/高さ ハードコーディングを防ぐには... この場合、上部または下部から開始するために事前に追加されたオフセットを使用する代わりに、ジオメトリを100x50%100%幅と高さの意味)で作成することもできます。50%-gravity-region

convert input.jpg \
-fuzz 20% \
-gravity North -region '100x50%' -fill green -opaque white \
+region \
-gravity South -region '100x50%' -fill red -opaque white \
+region \
output.jpg

複数のコマンドを接続できます。たとえば、上記のコマンドに追加できます-resize-cropイメージスタック:

これにより、画像または画像シーケンスを個別に処理し、結果をコマンドラインにインポートできます。画像スタックは角かっこで表示されます。イメージ演算子は現在のスタックのイメージにのみ影響します。

関連情報