ImageMagickを使って1分間で画像を一括処理する方法を公開

dd0i9a8329_tp_v

スポンサーリンク
レスポンシブ

禁断の無料画像サイト「ぱくたそ」

禁断のサイト「ぱくたそ」に手を出してしまいました。

写真素材ぱくたそは、「使って楽しい!見て楽しい」をキャッチコピーに14922枚のフリー素材を配布しています。会員登録なしで簡単ダウンロード可能、すべてレタッチ済みの高品質/高解像度です。

何が禁断かと言いますと、上のような画像がたくさん無料で公開されているのですよ。
思わず見入ってしまって、作業が滞ることハンパなくなってしまいます。

でも今回は誘惑を振り切って、「ぱくたそ」の素材を使って画像の一括処理をおこなってみます。

ImageMagickをインストールする際の注意点

imari20160806045717_tp_v
今回の操作のためには、ImageMagickとVBScriptが必要になります。
VBScriptはWindowsに本来入っていてインストールの必要がありませんので、ImageMagickの方だけインストールが必要です。

まず、Install from Binary Distribution @ ImageMagickからImageMgickのWindowsバイナリをダウンロードします。
私は、64bitパソコンには「ImageMagick-7.0.3-6-Q16-x64-dll.exe」、32bitパソコンの方には、「ImageMagick-7.0.3-6-Q16-x86-dll.exe」をインストールしました。

注意すべきなのは、インストールの途中で、
image
この画面が出てきたときに、一番下の項目にチェックを入れることです。
これで今回の自動化が可能になります。

もう一点、インストール直後にスクリプトを実行しようとすると、重要なファイルが見つからないというようなエラーが出るときがあります。
これは、そのファイルへのパスが通っていないからのようで、パソコンを再起動したら問題なく動作するようになりました。

VBScriptを使ってImageMagickを操作

gori_sayaimg_4705_tp_v
さて本番です。
今回は画像を最大幅680pixに縮小し、全体をフレームで囲んで、右下に文字を入れます。

まず、メモ帳などのテキストエディタを使って、次のスクリプトを「画像一括処理.vbs」などの名前で保存してください。
拡張子が.vbsであれば名前は好きにつけてかまいません。(アイコンの色が水色になったらOKです)

Dim FolPath, IM
FolPath = "D:\home\img"
Set IM = CreateObject("ImageMagickObject.MagickImage.1")
IM.Mogrify  "-resize", "670x>", _
            "-alpha-color","#e4e4e4", _
            "-frame",  "5x5+1+1", _
            "-font", "Meiryo-&-Meiryo-Italic-&-Meiryo-UI-&-Meiryo-UI-Italic", _
            "-pointsize", "14", _
            "-fill", "white", _
            "-gravity", "SouthEast", _
            "-annotate", "+32+32", "@ねとまが", _
            FolPath &  "\*.jpg"
Set IM = Nothing
MsgBox "Done"

何をするものか説明しましょう。
このスクリプトをダブルクリック等で実行すると、次のことをおこないます。
それぞれ必要に応じてパスや数値を書き換えてください。

  1. 「D:\home\img」フォルダ内のファイルを一括処理します。
  2. 画像の幅が670pixになるように縮小します。(小さいものは拡大しません)
  3. フレームの色は「#e4e4e4」です。red・whiteなどの文字での指定も可能です。
  4. -frameのところは、フレームの横縦の幅と影の太さを指定しています。(フレーム分を足して画像は680pixになるようにしています)
  5. -fontはフォント名を指定しています。
  6. -pointsizeは文字のサイズ、-fillは文字の色です。
  7. -gravityは文字の場所を指定しています。SouthEastは南東ですね。
  8. -annotateは文字の場所(この場合は右下からの距離です)と入れる文字列を指定しています。

このページの画像は、ダウンロードしたあとMicrosoft Officeに付属しているMicrosoft Picture Managerでトリミングして、みんな一度に上のスクリプトで処理しました。
実際にはトリミングを含めて1分くらいで、画像処理だけであれば、1~2秒で終了しています。

いかがでしょうか。
こんな感じでImageMagickとVBScriptで一括処理できてしまえば、書くことにより時間を取ることができると思いませんか。

スポンサーリンク
レスポンシブ