web-dev-qa-db-ja.com

複数の写真を固定領域にバッチトリミングするにはどうすればよいですか?例複数の1600x2000画像で400x300セクションをトリミング

たとえば、同じ寸法(同じ長さと幅)のすべての画像で、この黄色の長方形の領域をトリミングしたいと思います。

Image

これの1つの使用法は、ビデオゲームまたはプログラムで撮影されたスクリーンショットの束をトリミングして、画像の関連部分のみが表示されるようにすることです。

1
CreativiTimothy

irfanview を使用してこれを行うことができます。インストールしたら、コマンドプロンプトを開き、irfanviewプログラムフォルダーに移動し、次のようなコマンドで画像を変換します。

i_view64.exe c:\images\*.jpg /crop=(0,0,500,500,0) /convert=c:\output\*.jpg 

括弧内の5つの数字は

  1. x位置の開始
  2. y位置の開始
  3. 高さ
  4. どのコーナーから始めますか。

これらの番号は自分で見つける必要があります。数値がわかったら、上記のコマンドを使用してすべての画像を一度にトリミングできます。

または、コマンドラインではなくグラフィカルユーザーインターフェイスを使用する場合は、irfarviewを使用して画像の1つを開き、bを押してファイルをバッチトリミング/変換できます。高度なボタンでトリミングオプションを見つけることができます。

4
SparedWhisle

よく知られている無料のオープンソースを使用できます ImageMagick

ドキュメント からの簡単な例:

convert rose: -crop 40x30+10+10  crop.gif

ここで、40x30+10+10geometry であり、基本的にはwidth x height + offsetX + offsetYを意味します。すべてピクセル単位。オフセットは左上隅から測定されます。数字とxおよび+記号の間にスペースがあってはならないことに注意してください。読みやすくするために、ここにスペースを追加しています。

イメージのバッチに対してこれを実行するには、使用しているシステムに応じて、OSの完了コマンドと拡張コマンドを使用できます。 Windowsコマンドのプロンプトの例:

for %f in (*.png) do (
    convert %f -crop 40x30+10+10 cropped_%f
)

PowerShellの場合:

gci *.png | %{ convert -crop 40x30+10+10 $_.FullName ($_.BaseName+"_crop"+$_.Extension)}
3
Raf