Kuchitama Tech Note

はてな記法がいつまでたっても覚えられないので、はてなダイアリーからマークダウンが使えるこっちに引っ越してきました。

あ”あ”あ”、画像に埋め込んだ文字がTypoしてる!そんなときはImageMagickだ!!

最近、仕事の傍らScala関西Summitの準備を進めてます。

summit.scala-kansai.org

で、ひとつのテンプレで大量の画像を作成する必要があるタスクがあって、その作業を行っていました。

作ったのは↓のような画像です。*1

f:id:kuchitama:20150718160719j:plain

このアイコンだけを差し替えたような画像を量産していたのですが、 お気づきでしょうか?

イベントのスタッフは stuff ではなく staff なんです。

時既におそく、Typoに気づいたのはすべての画像を書きだした後…

しかも、個々の編集過程が残っているわけではなくて、手元にあるのは大本のテンプレートと作成のための素材、そして大量のTypo画像…

テンプレートを直して一つ一つ画像を直そうかとも思いましたが、さすがにそれはやってられない!

ということで、コマンドラインからImageMagickを使って、まとめて画像を修正することにしました。

手順

まずは、↓のようにテンプレートのTypoを直して、差分が発生する箇所を抜き取って透過した overlayer.png を作成します。(※: 真ん中の矩形部分が切り抜かれています)

f:id:kuchitama:20150718164424p:plain

この画像が用意できたら、ImageMagickconvert コマンドを使って上書きしてやります。

$ convert typo.png fixed.png -composite ./fixed_typo.png

これで、下記のように修正された画像が出力されます!*2

f:id:kuchitama:20150718165249p:plain

このままだと、何度もコマンドを叩かないと行けないので、 xargs を使って対象の画像をまとめて出力するようにします。

xargs-I オプションを使って、任意の位置に引数を設定することができます。

というわけで、実行するコマンドはこちら

$ find -E *.png | xargs -IFILENAME convert FILENAME fixed.png ./fixed_FILENAME

これでまとめて、大量の画像に埋め込まれたTypoを修正することが出来ました。

こんな、地味にStaffが頑張ってるScala関西Summitをよろしくお願いします。

ImageMagick逆引きコマンドリファレンス

ImageMagick逆引きコマンドリファレンス

*1:実際の画像は少し違います。この画像はブログ用に作成しました

*2:イコン画像が切れているのはブログ用に適当に画像を用意したためで、イベントで使う画像はちゃんと合成されてます