ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して動的な画像を生成する_PHP チュートリアル

PHP を使用して動的な画像を生成する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:04:51804ブラウズ

多くの人は、PHP が HTML 以外のデータを生成できることを知りません。これは、データベースから単純な広告の水平方向の画像を生成したり、単純にグラフィック ボタンを生成したりするのに非常に役立ちます。以下の例では、通常 'button.php3' という名前を付けます。

################################# #####################
-----button.php3------
Header("Content-type: 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]);
$ypad=9; $xpad,$dy+$ypad);
$blue = ImageColorAllocate($im, 0x6D,0xAF);
$white = ImageColorAllocate($im, 255,255,255);
ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black); ,$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);
################### # ###########################
このファイルには HTML タグを含めないことが非常に重要です。空白行を含めることはできません。 タグの前後に不完全な画像が表示される場合は、誤って PHP タグの外に文字を入力した可能性があります。

このスクリプトでは使用できます。構文 Web ページで呼び出します:

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



新しいページ 1 ; /ヘッド>

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

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

's' パラメーターはフォント サイズを設定するためのものです

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

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

注意してください。使用する前に、最初に黒い正方形の領域を描画しました。L メソッドは明るい背景でも 3D 効果を得ることができますが、フォントの背景色を暗い色に変更することもできます。 3 次元効果を表示するには、同じ効果を確認する必要があります。PHP をインストールするときに GD と TTF をサポートする設定があることを確認してください。PHP FAQ を参照してください。libgd.a を /usr/local にコピーすることをお勧めします。 /lib および gd*.h 関連ファイルを /usr/local/include に追加し、FreeTTF ライブラリ用に 'make install' を実行します

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

注:

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

Header("Content-type: image/jpeg");
if(!isset($bgred)) $bgred=0; $bggreen)) $bggreen=51;
if(!isset($bgblue)) $bgblue=153;
if(!isset($chgreen)) $ chgreen=255;
if(!isset($chblue)) $chblue=255;
if(!isset($wrappos)) $wrappos=20 ;
if(!isset($crop)) $crop=2.2 ;
if(!isset($s)) $s=11; $text;
$text=wordwrap($text,$wrappos, " ",0);
if (!isset($font)) $fontname="/www/ttfonts/arialbd.ttf"; ="/www/ttfonts/".$font.".ttf ";
$size = imagettfbbox($s,0,$fontname,$text);
$dx = abs($size[2]-$size[ 0]);
$dy = abs($size[5] -$size[3]);
$under=$size[1]; $upper-$under;
$xpad=9;
if (substr_count($text,chr(13))>=1)
{
$mult=(substr_count($text,chr(13))); $ypad=($mult*$crop*$s)+$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




<フォームメソッド="POST" アクション="button.php">

文字



区切られた位置(折り返し区切り位置)


背景色


红色     
绿色     
蓝色


字元颜色


红色    
绿色      
蓝色


字型


阴影


トリミングサイズ


Jpeg 品格 (0-100)







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

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

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



新しいページ 1


  

  


 

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/315865.html技術記事多くの人は、PHP が HTML 以外のデータを生成できることを知りません。これは、データベースから単純な広告の水平画像を生成したり、単純にグラフィック ボタンを生成したりするのに非常に役立ちます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。