ホームページ  >  記事  >  php教程  >  PHP3を使用して動的な画像を作成する

PHP3を使用して動的な画像を作成する

WBOY
WBOYオリジナル
2016-06-21 09:02:07925ブラウズ

 

大多数人并不了解php3也可以处理非HTML类型的数据,例如图象,我们可以用它来建立条型、柱状、饼图来反应数据库的数据,我们也可以用PHP3来建立好看的图形按纽。 大多数图形按是用图象编辑工具完成的,对于对图象无经验的程序员来说,这可是一件苦差事,在建立一个站点的时候,按的风格大多是统一的,区别在于按上的字,为了解除苦恼,我们可以使用TTF字体和PHP3的图形函数库建立一个按函数,需要按的时候调用一下即可,下面就是程序button.php3

本函数传递两个参数,$s是字体大小,$text是字,如有空格用+号代替

<
Header( "Content-type: image/gif");
//
デフォルトのフォント サイズ (設定されていない場合は ) 11
if(!isset($s)) $s=11;
/*
計算ttf テキストテキスト 占有領域
関数imagettfbbox (フォント サイズ,回転角度,フォント パス ,Word)
は配列 , を 8 つの配列要素から返します
size[0]=
左下X座標
size[1]=
左下Y座標
サイズ[2]=
右下X座標
サイズ[3]=
右下Y座標
size[4]=
右上X座標
size[5]=
右上 Y座標
size[4]=
左上X座標
サイズ[5]=
左上Y座標
*/
$size = imagettfbbox($s,0, "/fonts/TIMES.TTF",$text);//
は、doubleabs など、文字列の長さと高さの絶対値を受け取ります。または double、その他の absint 型になります
$dx = abs($size[2]-$size[0]);
$dy = abs($size[ 5 ]-$size[3]);
//
上下左右に 4 ピクセルの間隔を空けます。 1 ピクセルの影の合計は 4*2+1=9 $
xpad=9; $
ypad=9; / /
画像エリア $im
= imagecreate($dx+$xpad) ,$dy+$ypad); //
色の設定
ImageColorAllocate(画像ハンドル赤、緑、青)三原色 $ blue = ImageColorAllocate
($im, 0x2c,0x6D,0xAF); $black = ImageColorAllocate
($im, 0 ,0,0); $white = ImageColorAllocate
($im, 255,255,255); //
四角形を描画します
ImageRectangle(画像ハンドル,上左X、左上Y、右下X、右下 Y,カラー) //
影を描画します
ImageRectangle
( $im,1,1,$dx+$xpad,$dy+$ypad,$black); ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad- 1, $white); ImageRectangle($im,1,1,$dx+$xpad-1,$dy+$ypad-1,$blue);フォントを書き込む 画像
に移動します//ImageTTFText(画像ハンドル,フォント サイズ回転角度左上の単語X、左上の単語Y 、色、フォント パス、単語)
//
影を描画します
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
ImageGif($im);
ImageDestroy($);

注: このファイルには HTML コードを含めないでください。 および にも含めないでください。 > ; の間に空行を入れることはできません。そうしないと、プログラムは正常に実行されず、この関数は最終的に 画像 を作成します。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:正規表現次の記事:正規表現