docker環境でPHPのGDを有効にして、PHPで画像にテキストを追加する

執筆日: 更新日:
この記事の目次
chevron_right Dockerfileの設定

このブログでもやっていますが、
画像にテキストを追加して自動でサムネイルやOGP画像を作成できると楽ですよね?

今回はPHPで画像を編集する際に利用するGD関数を使える環境を構築します。

ちなみにこのサイトでは以下のように画像に自動でテキストが入ります

Dockerfileの設定

# 必要ライブラリのインストール
RUN apt install -y libpng-dev libjpeg-dev libfreetype-dev

# GDの有効化
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd

意外と簡単にできますね

PHPで画像を編集

今回は、既存画像の上にテキストを載せるサンプルをば

// 既存画像の読み込み
$image = imagecreatefromjpeg('画像までのパス');

// 画像に乗せるテキストの色を設定
// R ... RGBのRの値(0〜255)
// G ... RGBのGの値(0〜255)
// B ... RGBのBの値(0〜255)
$color = imagecolorallocate($image, R, G, B);

// 画像にテキストを乗せる
imagettftext($image, フォントサイズ, 回転, X座標, Y座標, $color, 'fontファイルのパス', '画像に乗せたいテキスト');

// 画像の出力(ファイルに出力)
// ブラウザにレンダリングする場合は、第二引数を消す
imagejpeg($image, '出力先ファイルパス');

// メモリの開放
imagedestroy($image);

以上です

この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。