ImageMagickメモ

提供: Astarisk Works Wiki


目次

画像形式を変換する

JPEGからPNGに変換するには次のようにする

> convert rose.jpg rose.png

サイズを変更する

サイズを変更するにはconvertの-resizeオプションを使う。

-resizeオプションの引数は 幅x高さ。

次はカレントディレクトリ内のJpegファイルを1024x1024ピクセルに変換し、output***.jpgというファイル名で出力する例。(***は000から始まる3桁の連番)

> convert *.jpg -resize 1024x1024 output%03d.jpg

-resizeでは画像のアスペクト比は保つので1600x1200のjpegは1024x768にリサイズされる。

次の例のようにサイズをパーセント指定することも可能

> convert -resize 50x50% input.jpg output.jpg

画像の一部を切り取る(トリミングする)

画像からピクセル数で指定した領域を切り取るにはconvertの-cropオプションを使う

-cropの引数は (幅)x(高さ)+(横開始位置)+(縦開始位置)。 横開始位置、縦開始位置は切り取る領域の左上の座標。

次はsample.jpgの左上から1024x800ピクセルの領域を切り出し、output.jpgとして保存する例。

> convert sample.jpg -crop 1024x800+0+0 output.jpg

静止画からスライドショー動画を作る

複数のJPEG等の画像からスライドショーの動画を生成することができる。

たとえばimage-001.jpgからimage-100.jpgの連番が振られたJPEGファイルからtest.mpgという名称のMPEGにする場合には次の様にする。

> convert -delay 100 image.jpg test.mpg

ここで-delayパラメータは個々の画像の切り替え間隔で1/100秒で指定する。上記の例だと1秒に1枚ずつ画像が切り替わる。

静止画に文字を書き込む

次のコマンドではinput.jpgというJPEGファイルに"日本語も大丈夫" という文字を追加し、output.jpgに出力する。

ちなみに-drawがビットマップに文字や図形を書き込むオプション。必要ならば複数つけることができる。

convert -font /usr/share/fonts/truetype/ttf-japanese-gothic.ttf -pointsize 30 -fill blue -draw "text 200,300'日本語も大丈夫'" input.jpg output.jpg

次のシェルスクリプトは実行ディレクトリのJPG画像にそのファイル名とサイズを記入する例

#!/bin/bash

###############################################################################
#
#    ImageMagickを利用した画像にそのファイル名とサイズ(幅x高さ)を埋め込むスクリプト
#
############################################################################### 

FONT=/usr/share/fonts/truetype/ttf-japanese-gothic.ttf
COLOR=red

mkdir out

for fname in ./*.jpg ; do
	#画像のサイズの取得
	geometory=$(identify ${fname}| cut -d " " -f 3)
	width=$(echo $geometory  | cut -d "x" -f 1)
	height=$(echo $geometory | cut -d "x" -f 2)
	SIZE=$(($height/10))
	#ファイル名の座標を計算
	name_x=$(($width/10))
	name_y=$(($height-$height/10))
	#画像ファイルの座標を計算
	geo_x=$(($width-($width/10)*4))
	geo_y=$(($height/10))

	#画像への挿入
	DRAW_NAME="text ${name_x},${name_y} '${fname}'"
	DRAW_GEO="text ${geo_x},${geo_y} '${geometory}'"
	convert -font $FONT -pointsize $SIZE -fill $COLOR -draw "${DRAW_NAME}" -draw "${DRAW_GEO}" $fname ./out/${fname}
done

様々な例

参考

ImageMagick: Convert, Edit, and Compose Images(本家)

ImageMagick

個人用ツール