整理された一連のフォルダに複数の画像が保存されています。これらの画像のサイズを、親ディレクトリから特定の割合で再帰的にに変更する必要があります。私はUbuntu 11.10を実行していますが、ターミナルから直接それを行う方法を学ぶことを好みます。
imagemagick を使用できます。たとえば、現在のディレクトリの下にあるすべてのJPG画像のサイズを元のサイズの50%に変更するには、次のようにします。
for f in `find . -name "*.jpg"`
do
convert $f -resize 50% $f.resized.jpg
done
結果のファイルには、名前に「.jpg」が2回含まれます。それが問題である場合は、次の選択肢を確認できます。
サイズ変更するファイルの走査/検索には、 xargs も使用できます。例:
find . -name "*.jpg" | xargs convert -resize 50%
これにより、画像のコピーが作成されます。それらを単にinplaceに変換したい場合、以下を使用できます:
find . -name "*.jpg" | xargs mogrify -resize 50%
@betabandidoからの回答を拡張する
画像があるファイル名またはフォルダー名にスペースがある場合、解析エラーを回避するために、findで-print0を使用し、xargsで-0を使用する必要があります。
find . -name "*.jpg" -print0 | xargs -0 convert -resize 50%
find . -name "*.jpg" -print0 | xargs -0 mogrify -resize 50%
新しいサイズ変更解像度を指定した場合にも機能します:
convert $f.jpg -size 1024x768 $f.resized.png
使用することもできます
Sudo apt-get install nautilus-image-converter
ただし、これは現在のフォルダー内の画像に対してのみ機能します。インストールするだけで、1つまたは複数の画像を右クリックして、必要なサイズを選択するだけです。
これもimagemagickを使用していると思います。
バッチサイズ変更には、imagemagickツールを使用できます。
アスペクト比を維持します
$ convert dragon.gif -resize 64x64 resize_dragon.gif
アスペクト比を維持しません
$ convert dragon.gif -resize 64x64\! exact_dragon.gif
$ cat resize.sh
#!/bin/bash
for f in `find . -name "*.jpg"`
do
convert $f -resize 45x60\! $f.resize.jpg
done
現在のディレクトリのアスペクト比を維持せずに、画像のサイズを45x60に変更します。