imagefttext
(PHP 4 >= 4.0.7, PHP 5, PHP 7)
imagefttext — FreeType 2 によるフォントを用いてイメージにテキストを描画する
説明
imagefttext
( resource $image
, float $size
, float $angle
, int $x
, int $y
, int $color
, string $fontfile
, string $text
[, array $extrainfo
] ) : array
注意:
imagefttext() は、 imagettftext() を拡張したものです。
extrainfo
を追加でサポートしています。
パラメータ
image
imagecreatetruecolor() のような画像作成関数が返す画像リソース。
size
使用するフォントのサイズ (ポイント数)。
angle
角度 (度数)。0 度は、左から右に読むテキストを表します。 度数を上げていくと、反時計回りに回転します。たとえば、 90 度の場合は下から上に読むテキストとなります。
x
x
とy
で表す座標が、最初の文字のベースポイント (その文字の左下の角とほぼ等しい点) となります。 imagestring() の場合はx
とy
で最初の文字の左上の角を指定しており、 たとえば "左上" は 0, 0 となりますが、この関数では異なります。y
y 座標。これはフォントのベースラインを指定するものであり、 文字の最下端を指定するものではありません。
color
テキストに使用する色のインデックス。 imagecolorexact() を参照ください。
fontfile
使用する TrueType フォントへのパス。
PHP が使用している GD ライブラリのバージョンにも依存しますが、
fontfile
の先頭に/
がついていない場合はファイル名の末尾に.ttf
を追加して GD のフォントパスからファイルを探そうとすることもあります。GD ライブラリのバージョンが 2.0.18 より古い場合は、複数のフォントファイルを指定するときの 'パス区切り文字' がセミコロンではなく
スペース
となります。 この機能を意図せずに使ってしまい、Warning: Could not find/open font
といった警告が発生してしまうことがあります。 この問題が発生するバージョンの場合は、 スペースを含まないパスにフォントを格納しなければなりません。たいていの場合は、スクリプト内で使うフォントの場所は同じディレクトリになるでしょう。 そんな場合は、次のようにすれば読み込み時の問題を回避できます。
<?php// GD 用の環境変数を設定しますputenv('GDFONTPATH=' . realpath('.'));// 使用するフォント名を指定します (拡張子 .ttf がないことに注目しましょう)$font = 'SomeFont';?>
text
画像に挿入するテキスト。
extrainfo
- {|
|+
extrainfo
の配列のインデックス ! キー ! 型 ! 意味 |- |linespacing
| float | 描画時の行間を定義します |}
返り値
この関数は、長方形の 4 つの角を表す点の配列を返します。 最初が左下の位置で、そこから反時計回りに回ります。
0 | 左下の x 座標 |
1 | 左下の y 座標 |
2 | 右下の x 座標 |
3 | 右下の y 座標 |
4 | 右上の x 座標 |
5 | 右上の y 座標 |
6 | 左上の x 座標 |
7 | 左上の y 座標 |
例
例1 imagefttext() の例
<?php// 300x100 の画像を作成します$im = imagecreatetruecolor(300, 100);$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);$black = imagecolorallocate($im, 0x00, 0x00, 0x00);// 背景を赤にしますimagefilledrectangle($im, 0, 0, 299, 99, $red);// ttf フォントファイルへのパスを設定します$font_file = './arial.ttf';// フォントサイズ 13 で 'PHP Manual' というテキストを描画しますimagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');// 画像をブラウザに出力しますheader('Content-Type: image/png');imagepng($im);imagedestroy($im);?>
注意
注意:
この関数は、PHP が FreeType サポート(--with-freetype-dir=DIR) を有効にしてコンパイルされている場合のみ使用可能です。
参考
- imageftbbox() - freetype2 によるフォントを用いたテキストを囲む箱を取得する
- imagettftext() - TrueType フォントを使用してテキストを画像に書き込む