PHPを使用して画像を処理する場合、 ImageFtText関数は非常に実用的なツールであり、TrueTypeフォントをサポートする画像にテキストを描画できます。通常のテキスト描画に加えて、テキストに影の効果を追加して、視覚的な階層と美学を強化することもできます。
この記事では、 ImageFtText関数を使用して影のテキストを描画する方法を詳細に説明し、実際のコードの例を使用してこの手法を迅速に習得するのに役立ちます。
まず、サーバー環境にGD拡張機能が有効になっていることを確認し、PHPがFreetype Fontライブラリをサポートしていることを確認してください。さらに、一般的なarial.ttfなどのTTFフォントファイルを準備する必要があります。システムフォントからコピーするか、お気に入りのフォントファイルをダウンロードしてプロジェクトディレクトリに保存できます。
ImageFtTextの基本的な構文は次のとおりです。
imagefttext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array
影を追加せずにテキストを描くと、コードは次のようになるかもしれません。
$im = imagecreatetruecolor(400, 200);
$bg = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 400, 200, $bg);
$textColor = imagecolorallocate($im, 0, 0, 0);
$font = __DIR__ . '/arial.ttf';
imagefttext($im, 20, 0, 50, 100, $textColor, $font, 'Hello World');
影を描くトリックは、最初に影を描き、次にメインテキストを描画することです。通常、影はわずかにオフセットされ、暗い色または透明度が低いのと同じテキストです。
シャドウエフェクトを追加する完全な例を次に示します。
$im = imagecreatetruecolor(400, 200);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 400, 200, $white);
// 影の色(グレー)
$shadowColor = imagecolorallocate($im, 100, 100, 100);
// メインテキストの色(黒)
$textColor = imagecolorallocate($im, 0, 0, 0);
$font = __DIR__ . '/arial.ttf';
$text = 'Hello Shadow';
// テキストの位置とサイズ
$fontSize = 24;
$angle = 0;
$x = 50;
$y = 100;
// 最初に影を描きます(右下にオフセットします2px)
imagefttext($im, $fontSize, $angle, $x + 2, $y + 2, $shadowColor, $font, $text);
// メインテキストを描きます
imagefttext($im, $fontSize, $angle, $x, $y, $textColor, $font, $text);
// 出力画像
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
ImageColorAllocateは、メインテキストと影の色を定義するために使用されます。
影は、たとえば(x+2、y+2)というテキスト位置の微調整によって実装されます。
シェードの色は、メインのテキストの色の明るさよりも低くする必要があります。または、より自然な影を得るために、 ImageColorallocatealphaを介して透明性を設定することができます。
効果をすばやく表示する場合は、上記のコードをShadow-text.phpファイルとして保存し、PHP対応サーバーにアップロードできます。
https://gitbox.net/shadow-text.php
サーバーが同じディレクトリに対応するフォントファイル( arial.ttfなど)があることを確認します。そうしないと、フォントの読み込みが失敗します。
シンプルな座標オフセットと妥当な色のマッチングを使用すると、 ImageFtTextを使用して、満足のいくテキストシャドウエフェクトを実現できます。この手法は、検証コードの生成、透かし図、およびパーソナライズされた画像出力で広く使用されています。 GDライブラリを適切に使用すると、画像処理機能が大幅に向上する可能性があります。
将来のプロジェクトでは、出力イメージをさらに美化するために、ぼかしの影、多層投影、ストローク効果など、テキストスタイルのさらに多くの変更を試してみることもできます。