ホームページ  >  記事  >  バックエンド開発  >  PHP での画像の作成とテキストの描画の例、_PHP チュートリアル

PHP での画像の作成とテキストの描画の例、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:48937ブラウズ

PHPで画像を作成しテキストを描画する例、

画像内に表示されるテキストも座標位置に応じて描画する必要があります。 PHP は、多数のフォント ライブラリをサポートするだけでなく、非常に柔軟なテキスト描画方法も提供します。たとえば、画像内に拡大縮小、傾斜、回転したテキストなどを描画します。 imageString()、imageStringUP()、または imageChar() などの関数を使用して、フォント内のテキストを画像に描画できます。これらの関数のプロトタイプは次のとおりです:

コードをコピーします コードは次のとおりです:

bool imagestring(resource $image,int $font,int $x,int $y,string $s,int $color) //文字列を水平方向に描画します
bool imagestringup(resource $image,int $font,int $x,int $y,string $s,int $color) //文字列を縦方向に描画します
bool imagechar(resource $image,int $font,int $x,int $y,char $c,int $color) //文字を横方向に描画します
bool imagecharup(resource $image,int $font,int $x,int $y,char $c,int $color) //文字を縦方向に描画します

上記の 4 つの関数のうち、最初の 2 つの関数 imageString() と imageStringUP() は、それぞれ文字列を画像に水平方向と垂直方向に出力するために使用され、最後の 2 つの関数 imageChar() と imageCharUP() は次の目的で使用されます。画像内に文字を縦横に出力します。これら 4 つの関数は異なりますが、同じように呼び出されます。いずれも第5引数で指定した文字を$image画像内に描画し、その描画位置を座標($x,$y)から出力します。文字列の線が水平方向に描画される場合、出力は左から右に行われ、文字列の線が垂直方向に描画される場合、出力は下から上に行われます。これらの関数は、最後のパラメータ $color を通じてテキストの色を指定できます。 2 番目のパラメータ $font は、テキスト フォント識別子を指定します。その値は、1、2、3、4、または 5 の整数です。数値が大きいほど、出力テキスト サイズが大きくなります。画像内のテキストを出力する例を次に示します:

コードをコピーします コードは次のとおりです:

$im = imagecreate(150, 150);

$bg = imagecolorallocate($im, 255, 255, 255) //キャンバスの背景を白に設定します
; $black = imagecolorallocate($im, 0, 0, 0) // カラー変数を黒に設定します
;
$string = "LAMPBrother" //画像に出力される文字
;
imagestring($im, 3, 28, 70, $string, $black); // 文字列を画像に水平方向に出力します
imagestringup($im, 3, 59, 115, $string, $black); //画像に下から上に垂直に入力します
for($i=0,$j=strlen($string);$i imagechar($im, 3, 10*($i+1),10*($j+2),$string[$i],$black); //各文字を下向きに出力します
imagecharup($im, 3, 10*($i+1),10*($j+2),$string[$i],$black) //各文字を上に傾けて出力します
}

header('コンテンツタイプ:画像/png'); imagepng($im);
?>

上記で紹介した 4 つの関数を使用して組み込みフォントを出力することに加えて、imageTtfText() 関数を使用して、スケーラブルなデバイスに依存しない TrueType フォントを出力することもできます。 TrueType は数学関数を使用してフォントの輪郭形状を記述し、印刷フォントと画面表示の両方で使用できます。このフォントはさまざまなオペレーティング システムと互換性があります。命令によってグリフを記述するため、解像度とは関係がなく、出力は常にプリンターの解像度に基づいて行われます。拡大または縮小しても、フォントは常に滑らかで、ギザギザのエッジはありません。たとえば、Windows システムでは、フォント ライブラリが配置されているフォルダー C:WINDOWSFonts に TrueType フォントのラベルがあります。たとえば、simsun.ttf は TrueType フォントの「Songti」です。 imageTtfText() 関数のプロトタイプは次のとおりです:

コードをコピーします コードは次のとおりです:
array imagettftext(resource $image,float $size,float $angle,int $x,int $y,int $color,string $fontfile,string $text)

この関数には複数のパラメータが必要で、その中でパラメータ $image は画像リソースを提供する必要があります。パラメータ $size は、GD ライブラリのバージョンに応じて、ピクセル サイズ (GD1) またはポイント サイズ (GD2) で指定する必要があります。パラメータ $angle は度で表される角度で、0°は左から右に読まれるテキストで、より高い値は反時計回りの回転を表します。たとえば、90 度は下から上に読むテキストを表します。 2 つのパラメータ ($x、$y) で表される座標は、文字の基本点を定義します。これはおそらく文字の左下隅です。これは、($x, $y) 座標が最初の文字の左上隅を定義する imagestring() 関数とは異なります。パラメータ $color はカラーインデックスを指定します。負のカラー インデックス値を使用すると、アンチエイリアスがオフになる効果があります。 $fontfile は、使用する TrueType フォントへのパスです。 PHPで使用するGDライブラリによっては、fontfilが「/」で始まらない場合、ファイル名の末尾に「.ttf」が付加され、ライブラリ定義内のファイル名を検索しようとします。フォントパス。最後のパラメータ $text は、出力するテキスト文字列を指定します。これには、フォント内の位置 127 以降の文字にアクセスするための 10 進数のデジタル化文字表現 (€ 形式) を含めることができます。 UTF-8 でエンコードされた文字列を直接渡すことができます。文字列で使用されている文字がフォントでサポートされていない場合、その文字は中空の長方形に置き換えられます。

imagettftext() 関数は、テキスト フレームの 4 つの隅を左下隅、右上隅、左上隅の順序で表す 8 つのセルを含む配列を返します。これらの点はテキストに対して相対的なものであり、角度とは何の関係もありません。そのため、「左上隅」とは、ウォーターボトルの向きを見たときのテキストの左上隅を指します。次の例では、スクリプトを使用して、白の 400X30 ピクセルの PNG 画像を生成します。この画像には、黒 (灰色の影付き) の「Arial」フォントで「Remember the Classic!」と書かれています。

コードをコピーします コードは次のとおりです:
$im = imagecreatetruecolor(400, 30); // 400 30 ピクセルのキャンバスを作成します

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 399, 29, $white); //背景として白で塗りつぶされた四角形を出力します

//中国語の出力がある場合は、直接渡す前にトランスコードして UTF-8 文字列に変換する必要があります
$text = iconv("GB2312", "UTF-8", "クラシックの記憶");

//フォントを設定し、システム内のsimsun.ttcに対応するフォントをカレントディレクトリにコピーします
$font = 'simsun.ttc';

imagettftext($im, 20, 0, 12, 21, $grey, $font, $text); // 灰色の文字列を影として出力します
imagettftext($im, 20, 0, 10, 20, $black, $font, $text); //影に黒い文字列を出力します

header("コンテンツタイプ: image/png");
imagepng($im);

imagedestroy($im);

?>

http://www.bkjia.com/PHPjc/914048.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/914048.html技術記事 PHPで画像を作成しテキストを描画する例 画像内に表示されるテキストも座標位置に合わせて描画する必要があります。 PHP は、多数のフォント ライブラリをサポートするだけでなく、非常に柔軟な機能も提供します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。