大量の画像ファイルのサイズを一度で変更するスクリプト

コマンドスクリプト集トップへ




概要

あるディレクトリ内の画像ファイルをまとめてサイズ変換し、指定のディレクトリにコピーします。サムネイル作成などに利用できます。

条件

  1. Perl 5.6が必用です。
  2. PerlのPackage, GDが必用です。

コマンドの使い方

 resize.pl --source_dir <source_dir> --dest_dir <destination dir>
           --target_x <target width> --target_y <target height> [--force_size]
           [--help]

表示の都合上改行してますが、実際は一行のコマンドです。 作成された画像のファイル名はorigname_<width>x<height>.<ext>のようになります。サポートされている画像フォーマットはjpeg, gif, png, gd, gd2です。

指定必須なオプション

 --source_dir <source_dir>

元の画像があるディレクトリを指定します。絶対、相対、カレント等何でもかまいません。

 --dest_dir <dest_dir>

サイズを変更後の画像を格納するディレクトリを指定します。絶対、相対、カレント等何でもかまいません。

 --target_x <width>

変更後の画像の幅を指定します。

 --target_y <height>

変更後の画像の幅を指定します。

--force_sizeを指定しなければアスペクト比を保持したまま<width>と<height>に収まるサイズに調整されます。

省略可能なオプション

 --force_size

元画像のアスペクト比を無視し--target_xと--target_yで指定したサイズに強制的に変換します。

 --help

ヘルプを表示します。

使用例

 resize.pl --source_dir ../origdir --dest_dir . --target_x 240 --target_y 240

元画像は../origdirに入っています。幅240、高さ240に収まるよう画像サイズを変換しスクリプトを実行したディレクトリ(カレントディレクトリ)に変換された画像ファイルを書き出します。

 resize.pl --source_dir imagedir --dest_dir thumbnail --target_x 150
           --target_y 100 --force_size

元画像はimagedirに入っています。--force_sizeにより全ての画像を幅150、高さ100に強制的に変換し、サブディレクトリthumbnailに変換した画像を保存します。

スクリプトダウンロード

以下のリンクのテキストファイルをダウンロードし、名前をresize.plとしてください。一行目のPerlのパスは適切に変更してください。

resize.pl