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

PHPを使用して動的な画像を生成する

WBOY
WBOYオリジナル
2016-06-13 12:40:171170ブラウズ

多くの人は、PHP が HTML 以外のデータを生成できることを知りません。これは、データベースから単純な広告用の水平方向の画像を生成したり、

を使用したりするのに非常に役立ちます。 TTF フォントは次の例にあります
通常は 'button.php3' という名前を付けます:

###################### # ##############################
-----button.php3------
ヘッダー("コンテンツ タイプ: image/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;
$im = imagecreate($dx$xpad,$dy $ypad);
$blue = ImageColorAllocate($) im, 0x2c,0x6D,0xAF);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255); ,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);
ImageGif($im);
ImageDestroy($im)
################# # #############################
このファイルには HTML タグを含めないことが非常に重要です。 タグの前後に空白行がある場合、このスクリプトを使用した後に不完全な画像が表示される場合は、誤って PHP タグの外側に文字を入力した可能性があります。次の構文を使用して Web ページで呼び出すことができます:

########### ### #######################################
--- -test.php- ----



🎜>新しいページ 1







################## ##### ##############################

test.php の結果は次のようになります:

's' パラメータはフォント サイズを設定します。

これは s=18 の場合です:

注 I:
フォント パス "/fonts/TIMES.TTF" " Windows/fonts ディレクトリから TIMS.TTF フォント ファイルを取得し、Web サイトの fonts ディレクトリにコピーしてテストできます。中国のパフォーマンスに関しては、ネチズンはまだフィードバックを提供していません。

Pay最初に黒い正方形の領域を描画し、次に白いディスプレイスメントを使用して 3D 効果を生成します。L メソッドは明るい背景でも見ることができますが、背景色を暗い色に変更しても同様の効果が得られます。

まず、PHP インストールが GD と TTF をサポートするように設定されていることを確認する必要があります。libgd.a を次の場所にコピーすることをお勧めします。 /usr/local/lib および gd*.h 関連ファイルを /usr/local/include に追加し、FreeTTF ライブラリの
'make install'

http:// で httf フォントを見つけることができます。 rover.wiesbaden.netsurf.de/~kikita/ !

注:

次のソース コードは、上記の複数行のテキスト表示を改善します:
######? ########## #####################################
-------- ------button.php------
<

Header("コンテンツ-type: image/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; isset($chblue)) $chblue =255;
if(!isset($shadow)) $shadow="yes";
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";
else
$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($サイズ[5]);
$under=$size[1];
$xpad=9; 13))>=1)
{
$mult=(substr_count($text,chr(13)));
$ypad=($mult*$crop*$s);
}
else $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=="yes")
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





文字



区切る位置(折り返し区切り位置)


背景颜色


红色     
绿色     
蓝色


字元颜色


红色    
绿色      
蓝色


字型


阴影 そうです
いいえ


トリミングサイズ


Jpeg 品格 (0-100)







############################################### ########

または直接上の例の一样呼:

##################### ##################################
----test.php-----



新しいページ 1


  

  


 

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