プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、文字列を画像化する(日本語含む)
なんかPHPさんで文字を画像化できるらしいので試してみました。

ふむふむ、なるほど(--)

前提としてGDがインストールされていないと駄目みたいです。
インストールされていれば例えばこんなコードでできますよφ(--)

<?php 
    $font = "/ほげほげ/kochi-gothic-subst.ttf";    //フォント(環境に合わせて設定)
    $fontSize = 14;        //フォントサイズ
    $angle  = 0;        //文字列の傾き
    $strPosX = 10;        //文字の開始位置(横)
    $strPosY = 30;        //文字の開始位置(縦)

    $width = 200;        //画像の幅
    $height = 50;        //画像の高さ

    $bkColorR = 0;        //背景色(赤要素)
    $bkColorG = 0;        //背景色(緑要素)
    $bkColorB = 0;        //背景色(青要素)

    $strColorR = 255;    //文字色(赤要素)
    $strColorG = 255;    //文字色(緑要素)
    $strColorB = 255;    //文字色(青要素)

    //画像化文字列
    $str = $_GET['pstr'];
    if ($str == '') {
            $str = "文字もじmoji";
    }

    //画像の作成
    $img = imagecreatetruecolor($width, $height);
    
    //背景色設定
    $backGroundColor = imagecolorallocate($img, $bkColorR, $bkColorG, $bkColorB);
    imagefilledrectangle($img, 0, 0, $width, $height, $backGroundColor);

    //文字描画
    $strColor = imagecolorallocate($img, $strColorR, $strColorG, $strColorB);
    imagettftext($img, 
            $fontSize, 
            $angle, 
            $strPosX, 
            $strPosY, 
            $strColor, 
            $font, 
            $str);

    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");
    imagepng($img);

    //後始末
    imagedestroy($img);

 ?>

文字の書き出しは「imagettftext()」で行っていますが
英数字のみであれば「imagestring()」でも良いみたい。

日本語を画像出力したければ「imagettftext()」使って
フォントに日本語フォントを指定してくださいってことだそーな。

文字を画像にして何か意味あるの?と思わなくもないですが
パッと思い浮かぶ使いどころはメールアドレスの画像化とかですかね(--?
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事