ImageMagick で YouTube のサムネっぽい画像を作ってみた!

2022年09月30日
投稿者:yoshida.rie
カテゴリ:ImageMagick タグ:

はじめに

こんにちは、鈴木商店の吉田です。

最近業務で ImageMagick を使う機会があり、せっかくなら楽しいことできないかなあと思い、
YouTube のサムネのような画像を作ってみることにしました。

ImageMagick とは

ImageMagick(イメージマジック) は画像処理ライブラリです。
コマンドラインで簡単に画像処理ができます。

環境

・ macOS Monetrrey 12.5.1
・ ImageMagick 7.1.0-33

基本構文

ImageMagick には、いくつか基本構文がありますが、今回はすべて convert コマンドを使います。
以下3パターンです。

画像を編集してみる

では、実際にやっていきましょう〜。
今回は、先日友人が撮ってくれた写真で作っていきます。

STEP1: 画像をリサイズする

オプション 内容 詳細
-crop 切り取るサイズ/場所を指定する (width) x (height) +(x座標) +(y座標)

画像の切り取ったのと同時に、さらっとファイル形式を JPEG から PNG に変更しています。
ファイル名を指定する際拡張子を変更すれば、 ImageMagick がファイル形式を変えてくれます。
めっちゃかんたん。ありがたい!

STEP2: 色加工する

オプション 内容 詳細
+contrast コントラストを設定する 通常のオプションは、数字で指定できるが、contrast は 高くする場合は +contrast (更に高くする場合は、 +contrast を複数回記載する)。 低くする場合は -contrast
-modulate 明るさ、彩度を設定する 明るさ(%) x 彩度(%)

少しわかりにくいですが、明るくなりました。
髪にツヤがでたのが嬉しい^^

STEP2.5: STEP1 と STEP2を組み合わせる

わかりやすいように分けましたが、STEP1、STEP2 は1回のコマンドで実行することができます。
その場合は、こんなコマンドになります。

STEP3: 文字画像を作成する

次は、文字画像を2つ作っていきます。
変換元の画像がないため、 convert の後にいきなりオプションがきます。

オプション 内容 詳細
-background 背景色を指定 背景色は テキスト(white 等)や rgba で指定できます。今回は背景を透過にしたかったので、rgba の第四引数で透明度を指定しています。
-size 画像のサイズ (width) x (height)
-gravity 文字の場所 center(真ん中) / northwest(左上) / north(上) / south(下) / east(右) / west(西) のように方角で指定します。 右上なら northeast です。
-font フォントの種類 convert -list font コマンドで、ご自身のOS で使用可能なフォントが検索できます。
-fill 文字色
-pointsize 文字サイズ
label: 記入する文字 改行は \n

画像の背景を透過させるのにとても苦労しました。
注意点としては、以下2点です。
・ JPEG では透過の情報を保持できないので、PNG にする。
-border(枠線)オプション をつけると透過できない。(オプションの順番を変えるとできるかもしれません。)

-gravity で文字の場所を指定する方法が方角なのが、楽しいですね〜^^

ちなみに、最近断捨離にハマっていてゆるめのミニマニストに憧れているので、それっぽい文字を入れてみました。
こういう投稿、大好物です。。

STEP4 画像を重ね合わせる

最後に画像を重ね合わせます。
convert のあとは、<重ねる際下に置く画像名> <上に重ねる画像名> がきます。
また、最後に -compose over -composite <出力時の画像名> を指定してあげます。

オプション 内容 詳細
-geometry 画像を貼り付ける位置 (x座標) x (y座標)

今回は、 -geometry で位置を指定しましたが、大体の位置指定で良いなら STEP3 の -gravity を使うことも可能です。

完成!

おわりに

今回は、 ImageMagick で YouTube のサムネっぽい画像を作ってみました。
最初はとっつきにくかったのですが、慣れると簡単にいろんなものが作れて楽しかったです^^
オプションが豊富で、まだまだいろんなものが作れそうなので、また次の機会にご紹介します!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です