画像に文字を入れる方法|ImageMagickでテキストをのせる基本操作|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
第45回|UNIX Cafe「文字をのせてみよう!」

UNIX Cafe | 第45回

目次

ImageMagickコマンドで画像に文字を入れる方法|Mac/Linux

ブログのアイキャッチ画像やSNSの投稿写真に、タイトルや説明文を入れたい。そんな時、わざわざ画像編集ソフトを立ち上げるのは少し面倒ですよね。

もしあなたがMacやLinuxユーザーなら、コマンドラインツール「ImageMagick」を使えば、その作業が一瞬で完了します。

この記事では、ImageMagickを使って画像にテキストを合成する、シンプルながらも非常に強力な方法を徹底解説します。

基本の文字入れから、フォントや色の指定、プロ並みに読みやすいデザインテクニックまで、コピペですぐに使えるコマンド例を豊富に紹介。面倒な画像加工を自動化・効率化したい方は必見です。

ミナちゃん

SNSにアップする写真に、おしゃれなタイトルを入れたいんですが…ターミナルからでもできますか?

ユニ先生

大丈夫だよ、ImageMagickを使えば、文字の位置、大きさ、色、フォントまで自由自在。基本から応用まで、順番にマスターしていこう。

基本:画像に文字を入れる最もシンプルなコマンド

まずは、画像にテキストを追加する基本形です。-annotate オプションを使い、文字の位置と内容を指定します。

いちばんシンプルな書き方

magick input.jpg -gravity South -pointsize 48 -annotate 0 "Hello World" output.jpg
  • -gravity South: 文字を配置する基準位置を指定します。
    → South(下中央)、Center(中央)、NorthWest(左上)などがあります。
  • -pointsize 48: 文字の大きさを指定します。
  • -annotate 0 “Hello World”: 実際に文字を描画する命令です。
    → 0は回転角度、”Hello World”が挿入するテキストです。
ミナちゃん

なるほど!-gravityで大まかな位置を決めるんですね。簡単!

位置調整:文字を好きな場所にピクセル単位で配置する

-gravity よりもさらに細かく、ピクセル単位で文字の位置を決めたい場合は -draw オプションを使います。

座標を指定したいとき

magick input.jpg -pointsize 48 -draw "text 50,100 'Welcome!'" output.jpg

-draw “text 50,100 ‘Welcome!’: `text X,Y ‘テキスト’` の形式で指定します。`50,100`は「左から50px、上から100px」の位置を意味します。

ユニ先生

これなら狙った場所にピンポイントで文字を置けるね。デザインにこだわりたい時に便利だよ。

デザイン編:フォント・色・縁取りを自由にカスタマイズ

ImageMagickの真骨頂は、ここからです。文字のフォント、色、そして視認性を高めるための縁取り(ストローク)も自由自在に設定できます。

色やフォントを指定する例

magick input.jpg \
  -font Helvetica \
  -fill white \
  -stroke black -strokewidth 2 \
  -pointsize 60 \
  -annotate +50+50 "UNIX Café" \
  output.jpg
  • -font Helvetica: 使用するフォントを指定します。
    → PCにインストールされているフォント名や、フォントファイルのパスで指定できます。
  • -fill white: 文字の塗りつぶし色を指定します。
  • -stroke black -strokewidth 2: 文字の縁取りを「黒色」で「太さ2px」に設定します。
    → 写真の上に文字を置く場合、縁取りをつけるだけで格段に見やすくなります。
ミナちゃん

白文字に黒の縁取りは、どんな写真にも合わせやすくて見やすいです。

プロの技:半透明の背景(座布団)で文字の可読性を劇的に上げる

どんなに縁取りを工夫しても、背景の写真が複雑で文字が読みづらいことがあります。そんな時の最終手段が、テキストの下に半透明の帯(通称:座布団)を敷くテクニックです。ニュース番組のテロップなどでも使われるプロの技です。

半透明の黒帯の上に白文字をのせる例

magick input.jpg \
  -fill "rgba(0,0,0,0.5)" -draw "rectangle 0,400 1200,500" \
  -fill white -pointsize 60 -annotate +30+470 'Welcome!' \
  output.jpg
  • -fill “rgba(0,0,0,0.5)”: 塗りつぶし色を「半透明の黒」に指定します。rgbaの最後の0.5が透明度です。
  • -draw “rectangle X1,Y1 X2,Y2”: 長方形を描画します。
    → (X1,Y1)を左上の角、(X2,Y2)を右下の角とする四角形が描かれます。
  • このコマンドでは、先に半透明の長方形を描画してから、その上に改めて -fill white で指定した白色のテキストを重ねています。
ミナちゃん

これなら、明るい写真や複雑な背景でも、文字がくっきり読めますね!

応用:改行して複数行のテキストを入れる方法

改行を含んだ複数行のテキストを入れたい場合は、テキスト内に改行コード \n を含めるだけです。日本語を表示するには、日本語対応フォントのパスを -font オプションで明示的に指定する必要があります。

magick input.jpg \
  -font "/System/Library/Fonts/ヒラギノ角ゴシック W3.ttc" \
  -gravity Center -pointsize 48 \
  -fill white -stroke black \
  -annotate 0 "UNIX Caféへようこそ\n複数行のテキスト挿入テスト" \
  output.jpg
  • “テキスト1\nテキスト2”: \n を入れた箇所で自動的に改行されます。
  • 日本語フォントの指定: Macの場合は /System/Library/Fonts/ の中にあるヒラギノフォントなどを指定するのが一般的です。

まとめ:コマンドを駆使して表現の幅を広げよう

mageMagickを使えば、ターミナルから驚くほど柔軟にテキストを画像に合成できます。

  • -annotate や -draw で手軽に文字入れ。
  • -gravity や座標指定で自由なレイアウト。
  • -font, -fill, -stroke で文字をデザイン。
  • 半透明の座布団で、どんな背景でも読める文字に。

これらのテクニックを組み合わせれば、ブログやSNSの画像がもっと魅力的で、伝わりやすいものになるはずです。ぜひ、あなたの環境で試してみてください。

ユニ先生

一度コマンドを作ってしまえば、あとはテキストや画像ファイル名を変えるだけで使い回せるから、作業効率も格段にアップするよ。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次