写真や映画の映像とかで、上下に黒い帯がついているのって見た事ないですか?あれは本来、「レターボックス」っていう名前で、アスペクト比の異なる表示規格の間で互換性を得るためのものでした。なので、いわば「レターボックス」という手法は、一種の妥協案なんですが、あの黒い帯によって、ちょっと背景が明るくても色味が綺麗に見えたり、どことなくノスタルジックな雰囲気になったりして、個人的には好きだったりします。

ちょっと例を挙げると、

こちらが普通の縦横比の画像。

そして、こちらがレターボックスによって1:1の縦横比にした画像。

こんな感じです。(モデル:アベ君)

ただ、このようなレターボックスの画像を作る時、いちいちPhotoShopやGIMPなんて起動して手作業でやるのは面倒なので、自作スクリプトからImageMagickというツールを利用して、自動化してみました。

ターミナルやシェルスクリプトをちょっと知っている、MacもしくはUnixユーザの人向きです。(Windowsでも同様なことは当然出来ると思いますが、やる気がおこらなかったので、誰かWindows向けにまとめてもらえると嬉しいです。)

まず、画像の編集などが行えるImageMagickをインストールします。Mac を使っている人は portが利用出来ます。

[shell]
$ sudo port install ImageMagick
[/shell]

その後は、下記のシェルスクリプトを、レターボックス化したい画像ファイルを引数として実行します。しばらくすると、入力ファイル名の先頭に”LB_”が付加された名前で、レターボックス化された画像ファイルが出力されます。

[shell]
#!/bin/bash
#
# letterbox.sh
# 一般的なデジタルカメラのアスペクト比(3:2)の画像を、レターボックスで正方形にする。
#
# 使い方
# ~$ ./letterbox.sh 入力画像ファイル
#

# 入力画像と同じ横幅、1/4の縦幅の、黒い帯画像の生成
width=`identify -format %w $1`
tmp_h=` identify -format %h $1`
height=`expr ${tmp_h} / 4`
convert -size ${width}x${height} xc:black black_line.jpg

# 画像の下辺に黒い帯をつける
convert -quality 100 $1 black_line.jpg -append temp.jpg

# 画像の上辺に黒い帯をつけて、入力ファイル名の先頭に"LB_"をつけて出力する
convert -quality 100 black_line.jpg temp.jpg -append "LB_${1}"

# 一時ファイルを削除
rm black_line.jpg
rm temp.jpg
[/shell]

関係無いですが、こういうシェルがサクっと書ける・利用出来るってのも、Macの良いところかもしれないですね。Windowsだとなかなかやる気が、、、(結局やる気の問題)

P.S.

今回の作業中に、ImageMagickについて少し調べましたが、今流行のハイダイナミックレンジ周りもサポートしてるみたいですね!ほんと多機能なツールで、しかもコマンドラインから利用可能なので、ばしばしシェルを書いて効率よく使い倒したいところです。