ImageMagick(PerlMagick)のインストール

# tar xvfz ImageMagick-5.5.6.tar.gz
# cd ImageMagick-5.5.6
# ./configure

GIFでLZW圧縮を使用するならば --enable-lzw libperl.a がどうのこうのと怒られる場合は --enable-shared を付けてみる

# make
# make install
# cd PerlMagick
# perl Makefile.PL
# make
# make install 

RPMで入れている場合にPerlMagickを使用したい場合は別途ImageMagick-perlを入れる

# yum install ImageMagick-perl

画像フォーマット変換

convert 変換前ファイル名 変換後ファイル名
$ convert magick_origin.gif magick_png.png

画像サイズ変更

convert -geometry 横幅x縦幅 変換前ファイル名 変換後ファイル名
$ convert -geometry 100x80 magick_origin.gif magick_resize.gif

通常は縦横の比率は維持されるが、強制的に変更したい場合は

$ convert -geometry 100x80! magick_origin.gif magick_resize.gif

横幅は指定して、縦は自動で変更したい場合は

$ convert -geometry 100x magick_origin.gif magick_resize.gif

画質を落とす

convert -quality 数値 変換前ファイル名 変換後ファイル名
convert -quality 80 magick_origin.jpg magick_quality.jpg

色数を落とす

convert -colors 色数 変換前ファイル名 変換後ファイル名
$ convert -colors 8 magick_origin.gif magick_color.gif

白黒ビットマップに変換する(EZweb旧機種用)

convert -geometry 横幅x縦幅 変換前ファイル名 変換後ファイル名
mogrify -type Bilevel 変換前ファイル名 変換後ファイル名
$ convert -geometry 100x80 magick_origin.gif magick_bmp.bmp
$ mogrify -type Bilevel magick_bmp.bmp magick_bmp.bmp

画像の一部を切り出す

mogrify -crop 横幅x縦幅+横開始ピクセル+縦開始ピクセルファイル名
$ mogrify -crop 60x80+30+40 magick_origin.gif

画像の一部をぼかす

1回でできそうにないので3回に分けて行ないます
ぼかす部分を切り出します

$ convert -crop 100x100+100+50 org.jpg tmp.jpg

切り出した部分をぼかします

$ convert -blur 10x10 tmp.jpg tmp.jpg

ぼかした部分を元の画像に合成します

$ composite -compose src-over -geometry +100+50 tmp.jpg org.jpg blur.jpg

画像の情報を見る

$ identify magick_origin.gif

詳細表示

$ identify -verbose magick_origin.gif

アプリ情報を削除する

画像にはアプリ情報が入っているのでこれが原因でファイルサイズが抑えられないことがある
特にデジカメのFUJIFILM FinePixシリーズはアプリ情報だけで12kbほど使っているので携帯コンテンツには向かない

$ convert -colors 32 -geometry 100x80 +profile APP1 magick_origin.jpg magick_mobile.png

テキスト情報を削除する場合は

$ convert -colors 32 -geometry 100x80 +profile iptc magick_origin.jpg magick_mobile.png

両方削除する場合は

$ convert -colors 32 -geometry 100x80 +profile APP1 +profile iptc magick_origin.jpg magick_mobile.png

一番いいのは -thumbnail オプションを使うことみたい

$ convert -colors 32 -thumbnail 100x80 magick_origin.jpg magick_mobile.png

アニメーションGIFを作成する

f*.gifを間隔50/100杪で連結し無限ループのアニメーションGIFを作成する場合

$ convert -loop 0 -delay 50 f1.gif -delay 50 f2.gif fs.gif

特定の色を変更する

すでにある画像の色を変更したい場合に便利。
黒(#000000)を青(#0000FF)に変更したい場合。

$ convert -fill '#0000FF' -opaque '#000000' a.png b.png

単色でない場合は -fuzz オプションを使用するといいみたい。

$ convert -fuzz 50% -fill '#0000FF' -opaque '#000000' a.png b.png

Exif情報に基づいて回転する

Exif情報のOrientationに基づいて自動的に回転させます。

$ convert -quality 70 -thumbnail 320x240 -auto-orient a.jpg b.jpg

脆弱性対策

脆弱性を悪用するコンテンツを ImageMagick で開いた場合に、 任意の OS コマンドが実行される恐れがあります。
ImageMagick の脆弱性 (CVE-2016-3714) に関する注意喚起


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:23