web-dev-qa-db-ja.com

画像から境界線/空白を切り取る方法は?

周囲に白い境界線がある画像がたくさんあります。できればコマンドラインからこれらの境界線を一度に切り取りたいと思います。 ImageMagickでできると信じていますが、適切なコマンドが見つかりませんでした。

Irfanviewという名前のWindowsプログラムで「自動トリミング境界」オプションを使用して実行できることは知っていますが、Ubuntuベースのコマンドラインベースのソリューションを探しています。

50
Rafal

ImageMagick Trim

trimまたはconvertと一緒に使用されるコマンドラインオプションmogrifyを使用すると、画像の角と同じ色の境界線をトリミングできます。

使用法:

convert input.png -trim output.png

追加オプション-fuzzは、角の色の近くの色も削除します。オプション+repageを使用して、キャンバスを削除します(該当する場合)。

ImageMagickバッチトリム(検索)

ImageMagick Trimの上記のコマンドは、findコマンドと組み合わせて、画像のバッチ処理にも使用できます。

find ./ -name "pattern" -exec convert {} -trim outputfolder/{} \;

コマンドのpattern部分に適合するすべての画像をトリミングし、outputfolderという名前の新しいフォルダーに保存します。

画像がPNGであると仮定すると、コマンドは次のようになります。

find ./ -name "*.png" -exec convert {} -trim outputfolder/{} \;

ImageMagickバッチトリム(mogrify)

findを使用すると、出力ファイルを配置する場所を大幅に制御できますが、ImageMagickのmogrifyを使用して同じことを行うこともできます。

mogrify -trim *.png

convertおよびfindおよびconvertを使用したバッチ操作とは異なり、mogrifyはすべてのファイルを上書きするであることに注意してください。 mogrifyコマンドを実行する前に、ディレクトリ内のすべてのイメージのバックアップコピーを行うが最適です。

サイドノート:mogrifyを使用して、元のファイルを上書きしながら、ほとんどの(すべてではないにしても)convert操作をバッチで実行できます。

IrfanView

IrfanViewが実行されます Wineで非常にうまく 。 Irfanviewの出力を注意深く確認してください。Wineで使用すると画像が壊れることがあります。

62
Takkat