今は色んな開発環境使ってるんですが先日、PHPで文字を直接ブラウザに描画する必要があってそれをサーバー側のPHPで実装してたんですがなんで?って事があったのでちょっと書いてみたくって。
テスト用のモジュール(座標ポイントとか結構いい加減(^_^.))
<?php // 描画エリアサイズ $x = 200; $y = 200; // 描画エリア塗りつぶし用矩形ポイント情報配列 $values = array( 0, 0, 0, $x-1, $y-1, $x-1, $y-1, 0 ); // 描画エリアインスタンス取得 $gd = imagecreatetruecolor($x, $y); // バック描画用、模様データ情報 $corners[0] = array('x' => $x/2, 'y' => 1); $corners[1] = array('x' => 0, 'y' => $y-1); $corners[2] = array('x' => $x-1, 'y' => $y-1); // 各種描画色取得 $BG_Color = imagecolorallocate($gd, 240, 240, 240); $strFG_Color1 = imagecolorallocate($gd, 255, 0, 128); $strFG_Color2 = imagecolorallocate($gd, 255, 0, 128); $imgFG_Color = imagecolorallocate($gd, 128, 128, 255); // 背景描画 imagefilledrectangle($gd, 0, 0, $x, $y, $BG_Color); // 背景模様作成 for ($i = 0; $i < 100000; $i++) { imagesetpixel($gd, round($x),round($y), $imgFG_Color); $a = rand(0, 2); $x = ($x + $corners[$a]['x']) / 2; $y = ($y + $corners[$a]['y']) / 2; } // 描画文字列 $string = 'TEST Da Pyon'; // 文字を描画-1 imagechar($gd, 5, 20, 20, $string, $strFG_Color1); // 文字を描画-2 imagestring($gd, 5, $x/3, $y/2, $string, $strFG_Color1); header('Content-Type: image/png'); imagepng($gd); // メモリ開放 imagedestroy($gd); ?>
描画結果
39行目で設定している様な単純な英語文字列を描画したかっただけなんだけど・・・
42行目のimagecharって関数使用して幾ら描画しても1文字 T しか描画できない。
マジ、30分位悩んでしまいました。
そしたら普通にあるやん。
45行目のimagestringって関数。
普通に描画できました。 TEST Da Pyon って。
じゃ~ magecharって関数はいったい何者なの?って。
まぁ~マニュアルはちゃんと読め!!って事ですね(^_^.)
PHP Hacks ―プロが教えるWebプログラミングテクニック
Jack D. Herrington 牧野 聡
オライリージャパン 2006-06-01
価格 ¥ 3,780 / ユーズド ¥ 1,110 [ 定価 ¥ 3,780 ]
PHPによるWordPressカスタマイズブック―2.8対応 テンプレートの改造からプラグインの作成まで
藤本 壱