CHROMA

世の中の "当たり前" を確認する

ImageMagick使って画像をCUIで一括縮小、ファイル形式変更

まずはじめに

こいつ、ImageMagickのロゴなんだけど見た瞬間グッと来るものがあったよ。
かわいすぎて鼻血でた。

f:id:thleap:20121116125126p:plain

概要

"ImageMagick(イメージマジック)は画像を操作したり表示したりするためのソフトウェアスイートである。GIF、JPEG、JPEG 2000、PNG、PDF、Photo CD、TIFF、DPXなど100種類以上の画像ファイルフォーマットに対応している。GPL互換でより制限が緩い独自ライセンスが適用されている。" - wiki: ImageMagick

で、公式に飛びました。
http://www.imagemagick.org/script/index.php/

今度はお祖父”様”っていうか、威厳漂う感じになっちゃってまぁ〜。
(服の色、赤にしたらサンタさんだね)

f:id:thleap:20121116130313j:plain

リサイズ、反転、ミラー、回転、変形、裁断、色味調整、エフェクト、テキスト、線、多角形、楕円、ベジェ曲線を描画などなど、縮小や形式変更以外にも色々できるみたいですね。
長いお付き合いになりそうな予感です。

インストール

http://www.imagemagick.org/script/binary-releases.php#macosx
Homebrew でインストールした ImageMagick の場所 (2012-03-21)

$ brew install ImageMagick

使い方

ImageMagickの基本的な使い方
ImageMagick: 使い方

コマンド

コマンド 内容
display 各種イメージの表示,編集
import 表示されているウインドウを各種イメージファイルにダンプ
animate 指定されたイメージのシーケンスをアニメーション化
montage イメージをモンタージュ写真のように合成
convert 入力されたイメージを指定された各種フォーマットに出力
mogrify イメージの拡大・回転
identify 指定されたイメージに関する情報を出力

今のところ直近で使う予定はconvertかな。

convert オプション

  • +adjoin
    複数からなるファイル(例えばAnimation GIFやページ数のあるPSなど)を1枚1枚別ファイルに変換
    ex) convert +adjoin magick-anime.gif magick.gif

  • antialias
    アンチエイリアシング処理

  • -append,+append
    同じサイズの画像を結合 。+appendで左右方向、-appendで上下方向
    ex) convert +append magick1.gif magick2.gif magick-append.gif

  • -average
    画像の混ぜ合わせ。重ね合わせとは異なる
    ex) convert -average magick1.gif magick2.gif magick-average.gif

  • -blur x
    ぼかし
    ex) convert -blur 1x1 magick1.gif magick-blur.gif

  • -border x
    画像に縁をつける。widthは左右の縁、heightは上下の縁の厚さ
    ex) convert -border 5x5 magick1.gif magick-border.gif

  • -bordercolor
    画像に縁の色を指定
    ex) convert -bordercolor red magick1.gif magick-bordercolor.gif

  • -channel
    画像の特定のチャンネルを強調。typeで指定できるのはRed、Green、Blue、Matte
    ex) convert -channel red magick1.gif magick-channel-red.gif

  • -charcoal factor
    木炭絵のような効果。 ex) convert -charcoal 1 magick1.gif magick-charcoal.gif

  • -colorize value カラー処理。valueはR/G/Bで指定
    ex) convert -colorize 0/0/20 magick1.gif magick-colorize.gif

  • -contrast
    コントラスト強調
    ex) convert -contrast magick1.gif magick-contrast.gif

  • -crop x{+,-}{+,-}
    クロッピング。%指定可能。offsetは左上が+0+0。%指定時はoffset指定無効
    ex) conver -crop 50% magick1.gif magick-crop.gif
    ex) *conver -crop 50x50+0+20 magick1.gif magick-crop2.gif *

  • -deley <1/100ths of a second>
    次の画像に切り替わるまでの時間を指定。AnimationGIFなどを作成する場合に指定
    ex) convert -delay 100 -loop 0 magick[1-2].gif magick-anime.gif

  • -edge order
    エッジング処理。orderの適正値は3から31
    ex) convert -edge 3 magick1.gif magick-edge.gif

  • -emboss value
    エンボス処理
    ex) convert -emboss 3 magick1.gif magick-emboss.gif

  • -equalize
    均等化
    ex) convert -equalize magick1.gif magick-equalize.gif

  • -flip,-flop
    鏡像。lipは上下方向、flopは左右方向
    ex) convert -flip magick1.gif magick-flip.gif * ex) convert -flop magick1.gif magick-flop.gif*

  • -frame x++
    フレームをつける。
    ex) convert -frame +15+15+4+4 magick1.gif magick-frame.gif * フレームの色は -mattecolorで指定
    ex)
    convert -frame +15+15+4+4 -mattecolor red magick1.gif magick-frame-color.gif *

  • -gamma
    ガンマ補正。RGBで指定する場合は1.7/2.3/1.2のような指定に
    ex) convert -gamma 1.7/2.3/1.2 magick1.gif magick-gamma.gif

  • -geometry x{+,-}x
    サイズ変更。%指定可
    ex) convert -geometry 30x30 magick1.gif magick-geometry.gif

  • -implode factor
    中央に集中点
    ex) convert -implode 1 magick1.gif magick-implode.gif

  • -interlace type
    インターレース処理

  • -transparent color
    画像内の colorの色の部分を透過に
    ex) convert -transparent white magick1.gif magick-transparent.gif

  • -monochrome
    画像をモノクロに
    ex) convert -monochrome magick1.gif magick-monochrome.gif

  • -negate
    すべての色をその補色で置換
    ex) convert -negate magick1.gif magick-negate.gif

  • -median order
    メディアン処理。画素の濃度値を小さい順にソートし、その中央値を出力値と置換 。orderの適正値は3から31
    ex) convert -median 3 magick1.gif magick-median.gif

  • -raise x
    縁の立体化。ボタン状に
    ex) convert -raise 5x5 magick1.gif magick-raise.gif

  • -roll {+,-} {+,-}
    画像をロールさせる。+x offsetで左から右方向へ、+y offsetで上から下方向へ
    ex) convert -roll +30+30 magick1.gif magick-roll.gif

  • -rotate
    画像を回転。+で時計回り、-で反時計回りに
    ex) convert -rotate +90 magick1.gif magick-rotate.gif

  • -segment x
    セグメント
    ex) convert -segment 1x1 magick1.gif magick-segment.gif

  • -shade x
    影をつける。azimuthの与え方がよくわからない
    ex) convert -shade 100x30 magick1.gif magick-shade.gif

  • -spread amount
    拡散化
    ex) convert -spread 1 magick1.gif magick-spread.gif

  • -swirl degrees 渦状に
    ex) convert -swirl 400 magick1.gif magick-swirl.gif

  • -threshold value スレショルド処理。valueでスレショルド値(白と黒にわける境界値)を指定
    ex) convert -threshold 20000 magick1.gif magick-threshold.gif

  • -wave x
    波状。amplitudeで振幅を、wavelengthで波長を指定
    ex) convert -wave 10x20 magick1.gif magick-wave.gif