画像の周囲の余白を自動で瞬時にトリミングする方法
2016/05/13
価値ある情報をユーザー視点で発信するブログ
2016/05/13
周囲に余白(白枠)のある画像を、画像編集ツールでトリミングする作業に追われたことはありませんか?
僕は面倒で周囲の余白を残したままブログに使ってしまうことが多いのですが、ページが間延びして本来はよろしくありません。
何とか自動化できないかと調査した結果をご紹介します。
もくじ
ブログを運営していると、メーカーが広報素材として用意した物撮り写真を使う機会は少なくないものです。
広報素材によくあるパターンに、白い背景で撮影した画像があります。
白く飛ばした背景の中に、ポツンと対象が写っている画像。いわゆる、白バック飛ばし。
余白となる周囲の白い背景部分は広めに取ってあることも少なくなく、それをそのままブログに使うと、ページが間延びしてしまいがちです。
余白を詰める場合、通常はPhotoshopやPixelmator、Preview.appなどの画像処理ソフトにあるトリミングツールを使います。
しかし、手動で処理をするとなると結構面倒なものです。
どうにか楽にできないかと調査したところ、自動化が可能でした。
こうした画像処理の自動化に使われるツールにImageMagickがあります。
ImageMagickに含まれるconvertを使うと、余白削除の自動化が可能です。
convert -trim -fuzz 5% +repage someimage.jpg someimage_trimmed.jpg
「-trim」というオプションがそれで、「-fuzz」オプションは閾値の設定です。
実際の処理例が以下です。
余白の部分は白に限らず、均一な地色であれば等しく処理が可能です。
ImageMagickのconvertはコマンドラインで使うものですので、普通の人にはちょっと使いづらいのが難点。
そこで、OS X用のアプリケーション化をしてみました。名付けて「AutoTrimmer」。
「AutoTrimmer」は、アプリケーションアイコンに画像をドラッグ&ドロップすると処理を開始します。
複数画像をドラッグ&ドロップすると、それらを順次処理します。
処理済み画像の保存先は、デスクトップ上のフォルダ「AutoTrimmer」固定です。
フォルダがなければ作成します。
クリップボードに画像へのURLをコピーしてから「AutoTrimmer」を起動すると、URLから画像をダウンロードして処理を開始します。
URLが複数行にわたる場合は、それを連続的にダウンロードして順次処理をします。
ダウンロード先、処理済み画像の保存先は、デスクトップ上のフォルダ「AutoTrimmer」固定です。
フォルダがなければ作成します。
AutoTrimmerは、内部でImageMagickのconvertコマンドを呼び出していますので、先にImageMagickのインストールが必要です。
以下のサイトからダウンロードできます。
「ImageMagick 6.9.1-0 for Mac OS X 10.5 – 10.10 (7.5 MB)」と「ImageMagick 6.9.1-0 for Mac OS X 10.5 – 10.10 Requires XQuartz. (7.8 MB)」の2種類ありますが、GUIは使わないので前者でOKです。
Homebrewをお使いなら、brewコマンドでインストールできます。
brew install imagemagick
ImageMagickのインストールが終了したら、以下より「AutoTrimmer」をダウンロード。解凍後、アプリケーションフォルダなどにコピーしてください。
OS X Yosemite(10.10.5)で動作確認しています。
初回起動時は普通に起動しようとすると以下のダイアログが表示されて起動できません。
「AutoTrimmer」のアプリケーションアイコンを右クリックないしはCtrl+クリックすると表示されるコンテキストメニュー上の「開く」から起動してください。
「AutoTrimmer」は自己責任でお使いください。
ブログを書いているときに、いつも「面倒だなぁ、これがこうなればなぁ」と考えていたことを、今回実現してみました。
ちなみに、「AutoTrimmer」の実体はRubyスクリプトで、それをアプリケーション化するために「Platypus」(カモノハシ)を使いました。
「Platypus」は、軽量プログラミング言語を使ってGUI付きのOS X用のアプリケーションを作れる開発者用のフロントエンド作成ツール。
大概はファイルをドラッグ&ドロップしてRuby / Pythonなどで処理するために使います。
AppleScriptの中でdo shell scriptを使い、スクリプトをエスケープしながら四苦八苦してRuby / Pythonを呼び出すDropletより圧倒的に書きやすいです。
処理中に特別な書式のテキストを標準出力に出力するだけで、OS Xの通知を飛ばしたり、プログレスバーを制御したりもできます。
2003年からある歴史のあるアプリケーションで、僕もかなり長いこと使っています。
その前身であるDropScriptも使っていました。とても好きな部類のソフトウェアなので、僕と趣味嗜好が似ている方はぜひ使ってみてください。