多くの人は、php が HTML 以外のデータを生成できることを知りません。これは、データベースから単純な広告の水平方向の画像を生成したり、単純にグラフィック ボタンを生成したりするのに非常に便利です。
以下の例では TTF フォントを使用しました
私は通常、「button.php3」という名前を付けます:
############################################## ## ###
-----button.php3------
Header("コンテンツタイプ: 画像/GIF");
if(!isset($s)) $s=11;
$size = imagettfbbox($s,0,"fonts/TIMES.TTF",$text);
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$xpad=9;
$ypad=9;
$im = imagecreate($dx+$xpad,$dy+$ypad);
$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);
ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);
ImageTTFText($im, $s, 0, (int)($xpad/2)+1, $dy+(int)($ypad/2), $black, "fonts/TIMES.TTF", $text);
ImageTTFText($im, $s, 0, (int)($xpad/2), $dy+(int)($ypad/2)-1, $white, "fonts/TIMES.TTF", $text);
画像Gif($im);
画像破壊($im);
?>
############################################## ## ###
このファイルには HTML タグを含めないことが非常に重要です。 タグと ?> タグの前後に空白行を含めることはできません。 PHP タグの外側に入力ミスされた文字
上記のスクリプトは、次の構文を使用して Web ページで呼び出すことができます:
############################################## ## ###
----test.php-----
新しいページ 1
頭>
本文>
############################################## ## ###
test.php の結果は次のようになります:
's' パラメータはフォント サイズを設定します。
これは s=18 の場合です:
注I:
フォント パス「/fonts/TIMES.TTF」は、windows/fonts ディレクトリから取得できます。TIMS.TTF フォント ファイルを Web サイトのフォント ディレクトリにコピーすることでテストできます。中国語のパフォーマンスについては、ネチズンはまだわかっていません。フィードバックを提供するため
最初に黒い正方形の領域を描画し、次に白いディスプレイスメントを使用して 3D 効果を作成したことに注意してください。L メソッドは明るい背景でも見ることができますが、背景色を暗い色に変更しても同じ効果を確認できます。フォントに立体感を表現するエフェクトが施されています
。
まず、PHP インストールが GD と TTF をサポートするように設定されていることを確認する必要があります。PHP FAQ を参照してください。libgd.a を /usr/local/lib にコピーし、gd*.h 関連ファイルを /usr/local にコピーすることをお勧めします。 /include それでは
FreeTTF ライブラリの「make install」
Chai httf フォントは http://rover.wiesbaden.netsurf.de/~kikita/ で見つけることができます
!
注:
以下のソースコードは、上記の弁を改善して複数行のテキストを表示できるようにします。
############################################## ## ###
---------------button.php-----------------
Header("コンテンツタイプ: 画像/jpeg");
if(!isset($bgred)) $bgred=0;
if(!isset($bggreen)) $bggreen=51;
if(!isset($bgblue)) $bgblue=153;
if(!isset($chred)) $chred=255;
if(!isset($chgreen)) $chgreen=255;
if(!isset($chblue)) $chblue=255;
if(!isset($shadow)) $shadow="はい";
if(!isset($wrappos)) $wrappos=20;
if(!isset($crop)) $crop=2.2;
if(!isset($jpegquality)) $jpegquality=80;
if(!isset($s)) $s=11;
$savetext=$text
$text=Wordwrap($text,$wrappos," ",0);
if (!isset($font)) $fontname="/www/ttfonts/arialbd.ttf";
それ以外は
$fontname="/www/ttfonts/".$font.".ttf";
$size = imagettfbbox($s,0,$fontname,$text);
$dx = abs($size[2]-$size[0]);
$dy = abs($size[5]-$size[3]);
$upper=abs($size[5]);
$under=$size[1]
;
$th=$upper-$under
$xpad=9;
if (substr_count($text,chr(13))>=1)
{
$mult=(substr_count($text,chr(13)));
$ypad=($mult*$crop*$s)+$s;
}
それ以外の場合は $ypad=($crop-2)*$s;
$im = imagecreate($dx+$xpad,$th+$ypad);$color = ImageColorAllocate($im, $bgred,$bggreen,$bgblue);
$black = ImageColorAllocate($im, 0,0,0);
$fontcolor = ImageColorAllocate($im, $chred,$chgreen,$chblue);
ImageRectangle($im,0,0,$dx+$xpad-1,$th+$ypad-1,$black);
ImageRectangle($im,0,0,$dx+$xpad,$th+$ypad,$white);
if ($shadow=="はい")
ImageTTFText($im, $s, 0, (int)($xpad/2)-2+1, $th+2+(int)($ypad/2)-3, $black, $fontname, $text) ;
ImageTTFText($im, $s, 0, (int)($xpad/2)-2, $th+2+(int)($ypad/2)-1-3, $fontcolor, $fontname, $text) ;
Imagejpeg($im,"",$jpegquality);
ImageDestroy($im);
?>
################################################ #####
以下のフォームから来産できます:
################################################ #####
----------test.php----------------------
新しいページ 1
<フォームメソッド="POST" アクション="button.php">
文字
大小
区切り位置(折り返し区切り位置)
背景颜色
红色
绿色
蓝色
字元颜色
红色
绿色
蓝色
字型
阴影 是
否
トリミング サイズ
JPEG 商品価格 (0-100)
フォーム>
ボディ>