PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

imagettftext - TrueType フォントを使用してテキストを画像に書き込む | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftextTrueType フォントを使用してテキストを画像に書き込む

説明

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

指定した text を、 TrueType フォントを使用して画像に書き込みます。

パラメータ

image

imagecreatetruecolor() のような画像作成関数が返す画像リソース。

size

フォントサイズ。GD のバージョンによって、ピクセル単位 (GD1) あるいはポイント数 (GD2) で指定します。

angle

度で表される角度。0 度は左から右にテキストを読む方向になります。 0 より大きな値は、反時計回りの回転を表現します。例えば、 90 という値は下から上にテキストを読む方向になります。

x

xy で与えられた座標は、最初の文字のベースポイント (ほぼ文字の左下角) を定義します。 この仕様は、xy で最初の文字の右上角を定義する imagestring() と異なっています。 例えば、左上は 0, 0 となります。

y

y 座標。これは文字の最下位置ではなく、 フォントペースラインの位置を指定します。

color

カラーインデックス。負の数を使用した場合、 アンチエイリアス機能がオフになります。 imagecolorallocate() を参照ください。

fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font 'SomeFont';
?>

注意:

Note that open_basedir does not apply to fontfile.

text

テキスト文字列を UTF-8 エンコーディングで表したもの。

フォント内で 127 文字目以降の文字にアクセスするために、 (&#8364; のような) 十進数文字参照を含めることができます。 (&#xA9; のような) 十六進形式もサポートしています。 UTF-8 エンコーディングされた文字列を直接渡すことができます。

&copy; のような文字エンティティはサポートされません。 html_entity_decode() を使用して、 文字エンティティを UTF-8 文字列にすることを検討してください。

フォントでサポートされていない文字が文字列で使用されている場合、 その文字は白抜きの矩形に置き換えられます。

返り値

テキストの境界を 構成する 4 点を表す 8 個の要素を有する配列を返します。 返される点は左下、右下、右上、左上の順番となります。 点の座標は、角度によらず text に関する相対座標として表されます。 つまり、"左上"は、text を水平に見た場合の左上の隅を表します。 エラー時には FALSE を返します。

変更履歴

バージョン 説明
5.2.0 text で十六進形式のエンティティを指定できるようになりました。

例1 imagettftext() の例

この例は、400x30 ピクセルの白地に Arial フォントを用いて、黒字 (グレーの影付き) で "Testing..." と書かれた PNG を作成します。

<?php
// コンテントタイプを設定します
header('Content-Type: image/png');

// 画像を生成します
$im imagecreatetruecolor(40030);

// いくつかの色を生成します
$white imagecolorallocate($im255255255);
$grey imagecolorallocate($im128128128);
$black imagecolorallocate($im000);
imagefilledrectangle($im0039929$white);

// 描画する文字列
$text 'Testing...';
// フォント自身のパスでパスを置き換えます
$font 'arial.ttf';

// テキストに影を付けます
imagettftext($im2001121$grey$font$text);

// テキストを追加します
imagettftext($im2001020$black$font$text);

// imagepng() を使用して imagejpeg() よりもクリアなテキストにします
imagepng($im);
imagedestroy($im);
?>

上の例の出力は、 たとえば以下のようになります。

出力例 : imagettftext()

注意

注意: この関数は、PHP が FreeType サポート (--with-freetype-dir=DIR ) を有効にしてコンパイルされている場合のみ使用可能です。

参考

  • imagettfbbox() - TypeType フォントを使用したテキストの bounding box を生成する
  • imagefttext() - FreeType 2 によるフォントを用いてイメージにテキストを描画する


忘却曲線を使ってこの関数を確実に記憶に残す

フォーラムで「imagettftext - TrueType フォントを使用してテキストを画像に書き込む」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | imagettftext - TrueType フォントを使用してテキストを画像に書き込む」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: