ImageMagickで画像変換(前編)
以前から気になってはいたけど手を付けずにいた ImageMagic。やってみたらすごい便利だし早い!! ただの画像書き出しや変換だったらコレ一つで全部済むんじゃないか!?って思うくらい目からウロコもんの代物でした。
winとmacの両方で使えるように シェルスクリプト を使った例でのご紹介。
スマホで見る
どうでもいいけど、この記事のアイキャッチ画像のロゴのおじいさんより上のリアルテイストのおじいさんの方がカッコイイから好きです。
…ホントどうでもいいんだけどね(・∀・)
目次
目次
※色々と書いてたら記事が長くなってしまったので前後編に分けて書きます。サンプルコードは次回。
(項目多くて見づらくなってしまってすいません… 見出しの見せ方変えなきゃな…)
#01. ImageMagicとは?
簡単に言うとCUI(文字だけで操作するやつ)で操作する画像編集ソフト。
詳しい解説は wiki だったり google検索 でたくさん情報があるのでそちらでどうぞ。
調べてみると 脆弱性 や あまり早くない。メモリもたくさん食う っていう記事もあるので本腰入れてガッツリ使おうとしたときには色々とうまくいかないことがあるのかも。
個人的には普通のPCで数百枚程度の画像処理を行う分には特に困らない印象ですかね。まだそんなに使いこなしてはないけども。
ちなみにその時実行してみた結果はこんな感じ。
■ windows7 32-bit RAM:4GB(Intel Core i7 / 870 / 2.93GHz) 大きさ:4000x3000(jpg) 平均:6.5MB(1枚あたり) 合計:1.79GB(275枚) ↓ 大きさ:1000x750(jpg-90%) 平均:3.3KB(1枚あたり) 合計:90.8MB(275枚) ------------------------------ 処理平均:0.76秒(1枚あたり) 合計時間:3分30秒
画像はImageMagick処理中のタスクマネージャーのメモリパフォーマンス。
使うソフトによってこれより全然処理が早いのはあるけど、手軽にパラメータをいじって好きな画像に出来るのがうれしいね。
#02. windowでImageMagicを使う(シェルスクリプト)
ImageMagicは コマンドプロンプト からも使えるみたいだけど、winとmacの両方で使える記述にしたかったので使用言語は シェルスクリプト を選択。
#02. 目次
#02-01. Cygwinインストール
まずはシェルスクリプトが実行できる環境を用意するために Cygwin をインストール。
以下のサイトがわかりやすくて参考になりました。
Cygwinをインストールしてからしばらく経ってたので、既存のものは削除して新規にインストールしてみました。(環境変数も削除) 大体 参考サイト のまんまの手順。
- Root Directory: C:\cygwin
- Local Package Directory: C:\cygwinpackage
- Download Site: ftp://ftp.jaist.ac.jp
- Packages: パッケージを選ばず進んだ時に進んだ時に表示されたオススメパッケージと以下のもの(Searchからパッケージ名を入力すると探しやすい)
- Base/gawk
- Devel/git-svn
- Web/wget
- Utils/bzip2
- Utils/tar
- Editors/vim
- Net/openssh
- 環境変数(システム環境変数:Path)にパスを追加(どちらかでok)
- /cygdrive/c/cygwin/bin;C:\cygwin\bin 昔入れてたパス
- C:\cygwin\bin;C:\cygwin\usr\bin;C:\cygwin\usr\local\bin 参考サイトにあったパス
パッケージはよくわからないからと言ってまとめてインストールしようとすると恐ろしく時間がかかるので後悔します…(この記事書く際に一度まとめてチェック入れて後悔しました)
#02-02. Cygwinでshファイル実行確認
Cygwinをインストールして再起動が済んだら hoge.sh ファイルを作成して実行してみる。
■ hoge.sh ※事前に C:\cygwin\home\[user] へファイルを配置
#!/bin/sh
# テキスト書き出し
echo Hello, World!!>hoge.txt
・実行方法01: Cygwin Terminalからshファイルを実行
- 先ほどインストールしたCygwin Terminalを起動
- 「./hoge.sh」とコマンドを入力
- 「C:/cygwin/home/[user]」に「hoge.txt」が作成されたか確認
・実行方法02: 「C:/cygwin/home/[user]」に配置した「hoge.sh」をダブルクリックで実行
どちらでも結果は同じ。
#02-03. ImageMagicインストール
ダウンロードサイト から自分の環境に合わせたプログラムをダウンロードして素直にインストールするだけ。参考サイト 見ても特にそんなに迷うところが無いのが分かるかと。
参考サイト
#02-04. ImageMagicの実行確認
- 適当な画像(例:wizard.png)を「C:/cygwin/home/[user]」に配置
- Cygwin Terminal を起動して「
convert wizard.png wizard.jpg
」とコマンドを入力 - 「C:/cygwin/home/[user]」に「wizard.jpg」が作成されているか確認
※単純にインストールされたかどうか確認するだけなら コマンドプロンプト か Cygwin Terminal から convert -version
コマンドで確認できる
[user]@[user]-PC ~
$ convert -version
Version: ImageMagick 6.8.9-8 Q16 x86 2014-08-26 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo freetype jbig jng jp2 jpeg lcms lqr pangocairo png ps rsv g tiff webp xml zlib
自分がインストールしたのはバージョン6.8.9-8みたい。
#03. macでImageMagicを使う(シェルスクリプト)
macは元々UNIXをベースにしたOSなので ターミナル(/Applications/Utilities/ターミナル.app) からシェルスクリプトが使えるからwindowsみたいに手間がかからない。
#03. 目次
#03-01. ターミナル.appでshファイル実行確認
■ hoge.sh ※事前に /Users/[user]/Desktop へファイルを配置
#!/bin/sh
# テキスト書き出し
echo Hello, World!!>hoge.txt
「/Applications/Utilities/ターミナル.app」からターミナルを起動。
以下のコマンドを順番に入力する。(確認用のものもあるので必要なコマンドだけの入力でも良い)
cd Desktop
… デスクトップへ移動./hoge.sh
… hoge.shファイルを実行- (Permission deniedを確認)
ls -ld hoge.sh
… hoge.shファイルの詳細を表示- (./hoge.shのパーミッションを確認)
chmod u+x hoge.sh
… hoge.shファイルのパーミッションを変更./hoge.sh
… hoge.shファイルを実行- (デスクトップに「hoge.txt」が作成されたことを確認)
shファイルは オーナーの実行を可能にするように権限を変更 しないといけないので chmod
コマンドでパーミッションを変更してあげる必要がある。
ここで実行できた hoge.sh ファイルは、拡張子を command にして hoge.command とファイル名を変更すればダブルクリックでも実行できるようになる。
※上記にあるhoge.shの中身の記述のままだとターミナル.app起動時のルートディレクトリが「/Users/[user]/」になるので、その階層に「hoge.txt」が作成される
#03-02. ImageMagicインストール
Cactuslab からインストーラーをダウンロードするのが手っ取り早そう。
もちろん Download Binary Releases/Mac OS X からも出来るんだろうけど、こちらは試していない。
インストーラーをダウンロードして起動したら流れに身を任せてインストール。めっちゃ楽。
ちなみにmacのスペック・インストールしたImageMagickの詳細は以下。
■ MacOSX(v10.9.5/Mavericks) 64-bit RAM:8GB(Intel Core i5 / 2.6GHz)
■ ImageMagick:6.8.8-6
#03-03. ImageMagicの実行確認
- 適当な画像(例:wizard.png)を「/Users/[user]」に配置
(Finderがアクティブの状態で cmd+shift+H で表示される場所) - ターミナル.app を起動して「
convert wizard.png wizard.jpg
」とコマンドを入力 - 「/Users/[user]」に「wizard.jpg」が作成されているか確認
#04. 前編終わり
やたら長くなってしまいましたが、以上で前編を終わりにします。
後半は画像変換のサンプルコードを交えてお届け予定です。
解説付きコードを載せるから説明省けてサラッと終わりそうな気がします。
それではまた後日!(b´∀`)