関数・クラス解説

imagettftext

version:PHP 4, PHP 5, PHP 7 (公式)

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

公式リファレンス

書式

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

説明

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

注意:

imagefttext() は、 imagettftext() を拡張したものです。 extrainfo を追加でサポートしています。

パラメータ

image
imagecreatetruecolor()のような画像作成関数が返す画像リソース。
size
ポイント数単位のフォントサイズ。
angle
度で表される角度。0 度は左から右にテキストを読む方向になります。 0 より大きな値は、反時計回りの回転を表現します。例えば、 90 という値は下から上にテキストを読む方向になります。
x
x と y で与えられた座標は、最初の文字のベースポイント (ほぼ文字の左下角) を定義します。 この仕様は、x と y で最初の文字の右上角を定義する imagestring() と異なっています。 例えば、左上は 0, 0 となります。
y
y 座標。これは文字の最下位置ではなく、 フォントペースラインの位置を指定します。
color
カラーインデックス。負の数を使用した場合、 アンチエイリアス機能がオフになります。 imagecolorallocate() を参照ください。
fontfile
使用したい TrueType フォントへのパス。 どの GDライブラリをPHPが使っているかによって、 いつ fontfile パラメータの先頭が / で始まらず、 .ttf がファイル名に付加されるかが違います。 そして、ライブラリは自らが定義したフォントパスに従ってそのファイル名を探そうとします。 GD ライブラリ 2.0.18 より前のバージョンを使っている場合、 セミコロンではなく、space 文字が 異なるフォントファイルの 'pathのセパレータ' として使われていました。 この機能を意図せず使ってしまうと、次のような警告が発生します: Warning: Could not find/open font. この事象の影響を受けてしまうバージョンでは、 唯一の解決策はフォントをスペースを含まないパスに移動させることだけです。 多くの場合、スクリプトが使っているフォントと同じディレクトリにある場合、 次のようなテクニックで問題を軽減できるでしょう。
// GD の環境変数を設定 putenv('GDFONTPATH=' . realpath('.')); // 使用されるフォント名 ( .ttf 拡張子の欠落に注意) $font = 'SomeFont';
注意: open_basedir は fontfile には適用され ない ことに注意してください。
text
テキスト文字列を UTF-8 エンコーディングで表したもの。 フォント内で 127 文字目以降の文字にアクセスするために、 (€ のような) 十進数文字参照を含めることができます。 (© のような) 十六進形式もサポートしています。 UTF-8 エンコーディングされた文字列を直接渡すことができます。 © のような文字エンティティはサポートされません。 html_entity_decode() を使用して、 文字エンティティを UTF-8 文字列にすることを検討してください。 フォントでサポートされていない文字が文字列で使用されている場合、 その文字は白抜きの矩形に置き換えられます。

返値

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

注意

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

サンプル

例1 imagettftext() の例

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

// コンテントタイプを設定します header('Content-Type: image/png'); // 画像を生成します $im = imagecreatetruecolor(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); // 描画する文字列 $text = 'Testing...'; // フォント自身のパスでパスを置き換えます $font = 'arial.ttf'; // テキストに影を付けます imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); // テキストを追加します imagettftext($im, 20, 0, 10, 20, $black, $font, $text); // imagepng() を使用して imagejpeg() よりもクリアなテキストにします imagepng($im); imagedestroy($im);

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

参考

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


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール