画像処理にPHPのGDライブラリを使用する場合、 ImageCharup()は、画像に垂直に単一の文字を描画する機能です。 ImagetTftext()のようなTrueTypeフォントのリッチなスタイルをサポートしていませんが、いくつかの単純なシナリオで基本的な文字描画タスクを実行できます。ただし、 ImageCharup()自体は斜体または大胆なスタイルを直接サポートしていないため、手続きスキルを通じてこれらの効果を「シミュレート」する必要があります。
ImageCharup()関数の基本的な使用法は次のとおりです。
imagecharup(resource $image, int $font, int $x, int $y, string $char, int $color): bool
$画像:画像リソース
$ font :ビルトインフォント(0〜5)
$ x 、 $ y :文字開始座標
$ char :描かれるキャラクター
$ color :色識別子
この関数は、キャラクターの配置を垂直に使用して、画像の下から上まで文字を描画します。
太字の原則は、キャラクターの近くでわずかなオフセットを作り、同じキャラクターを再び描画し、「太字」視覚効果を形成することです。これは、わずかにオフセットされた位置でemageCharup()を繰り返し呼び出すことで実行できます。
<?php
$image = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
// シミュレーション太字
$font = 4;
$x = 50;
$y = 80;
$char = 'A';
for ($i = 0; $i < 2; $i++) {
imagecharup($image, $font, $x + $i, $y, $char, $black);
}
imagepng($image, 'bold.png');
imagedestroy($image);
?>
$ xまたは$ yの値を変更することにより、同じ文字を2回以上描画して、「厚い」エッジをシミュレートします。この効果を高めるために、より大きなオフセットを使用してみることができます。
斜体効果は通常、キャラクターが歪んで表示されることを意味します。 ImageCharup()は、回転やチルトの描画をサポートしていませんが、ラインバイラインの文字オフセットを通じてチルトの感覚を「作成」できます。
それを実装する1つの方法は、各キャラクターを1つずつ描画し、Y軸方向のX座標オフセットを徐々に増加または減少させて、傾斜した配置を形成することです。
<?php
$image = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
$font = 3;
$x = 40;
$y = 80;
$text = "PHP";
$offset = 0;
for ($i = 0; $i < strlen($text); $i++) {
$char = $text[$i];
imagecharup($image, $font, $x + $offset, $y - $i * 15, $char, $black);
$offset += 1; // 傾斜角を制御します
}
imagepng($image, 'italic.png');
imagedestroy($image);
?>
上記のコードは、文字列のPHPを垂直に描画し、同時にX座標を文字通り増加させることで斜体感を形成します。この方法はTrueTypeフォントほど柔軟ではありませんが、 ImagetTftext()なしでは実用的な手段です。
斜体化と太字は、内蔵フォントによって視覚的に制限されていますが、アイコン、検証コード、埋め込みデバイスなどの軽量テキストレンダリングシナリオにはまだ実用的です。いくつかの単純な動的画像アプリケーションでは、特定のニーズも満たすことができます。
生成された画像をPHPから出力したり、次のようなサーバーに保存したりできます。
header('Content-Type: image/png');
imagepng($image);
または、次のような独自のドメイン名サーバーにアップロードします。
// 出力アドレス: https://gitbox.net/images/bold.png
上記は、 ImageCharup()を介してイタリック体と大胆な効果を実装するための実用的な手法です。この機能を軽量の画像処理タスクに柔軟に適用するのに役立つことを願っています。