2014年6月15日日曜日

ImageMagickを使って、EXIF情報に基づいて回転&縮小(BASH)

PowerPointに画像を入れて、フォトアルバムを作成するときの不具合への対処。


■使い方
\ls ./*.jpg > filelist.txt
./(下記のスクリプトファイル) < filelist.txt

■EXIF情報に基づいて回転
#!/bin/bash -xv 
 
mkdir -p ./rotated 

while read fn
do
    rotate_type=`identify -format "%[Exif:orientation]" "$fn"`
    echo $rotate_type
    case $rotate_type in
        6)
            deg="+90"
            ;;
        8)
            deg="-90"
            ;;
        3)
            deg="+180"
            ;;
        *)
            deg="0"
    esac

    if [ $deg -ne "0" ]; then
        convert -rotate $deg "$fn" "./rotated/$fn"
    fi

done

exit 0


■縮小
通常「 -geometry 縦x横」の指定であるが、「 -geometry x横」と指定することで、アスペクト比を保ったままサイズを固定(横サイズ優先)できる。
(雑な説明です。厳密な説明は省略します。)
#!/bin/bash -xv

mkdir -p ./converted

while read fn
do
 echo $fn
 convert -geometry x768 "$fn" "./converted/$fn"
done

exit 0


問題
・EXIF対応の画像ビューアでは、上記方法で補正済み状態から更にEXIFの情報に基づいて回転が行われるため、回転された状態で表示されてしまう。
→EXIF側の回転角を0にしなければならない。
 →時間がないので、後日(たぶんやらない。)



0 件のコメント:

コメントを投稿