ホームページ > php教程 > php手册 > PHP を使用して動的な画像を生成 [Oso から転載]

PHP を使用して動的な画像を生成 [Oso から転載]

WBOY
リリース: 2016-06-21 09:08:27
オリジナル
965 人が閲覧しました

最新情報

多くの人は、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-----



新しいページ <br>< /head> <br/><br/><body><IMG SRC="button.php3?s=36&text=PHP+is+Cool"> ############################################## ## <br><br>test.php の結果は次のようになります: <br><br> 's' パラメーターはフォント サイズを設定するためのものです <br><br>これは s=18 の場合です: <br><br>注 I: <br>フォント パス "/fonts/TIMES" .TTF" は、windows/fonts ディレクトリから取得できます。TIMS.TTF フォント ファイルを Web サイトの fonts ディレクトリにコピーしてテストします。中国のパフォーマンスに関しては、ネチズンはまだ体験を提供していません。<br><br>私が描いたことに注意してください。白いディスプレイスメントは明るい背景でも 3D 効果を生み出しますが、背景色を暗い色に変更して効果を確認することもできます。 3 次元効果を表示するには、同じ効果を確認する必要があります。PHP をインストールするときに GD と TTF をサポートする設定があることを確認する必要があります。PHP FAQ を参照してください。libgd.a を /usr/local/ にコピーすることをお勧めします。 lib および gd*.h 関連ファイルを /usr/local/include に追加し、FreeTTF ライブラリ用に 'make install' を実行します <br><br> HTML フォントは http://rover.wiesbaden.netsurf.de/~kikita/ で見つけることができます。 ! <br><br>注: <br><br>次のソース コードは上記の行テキスト表示を改善します: <br>########################## ############## ########## <br>--------------button.php-------- --------- <br><? <br/> <br/>Header("Content-type: image/jpeg"); <br/>if(!isset($bgred)) $bgred=0; bggreen)) $bggreen=51; <br/>if(!isset($bgblue)) $bgblue=153; <br/>if(!isset($chgreen)) $chgreen =255; <br/>if(!isset($chblue)) $chblue=255; <br/>if(!isset($wrappos)) $wrappos=20; <br/>if(!isset($crop)) $crop=2.2 ; <br/>if(!isset($jpegquality)) $jpegquality=80; <br/>$savetext=$テキスト; <br/>$text=wordwrap($text,$wrappos, " ",0); <br/>if (!isset($font)) $fontname="/www/ttfonts/arialbd.ttf"; "/www/ttfonts/".$font.".ttf "; <br/>$size = imagettfbbox($s,0,$fontname,$text); <br/>$dx = abs($size[2]-$size[0]) ]); <br/>$dy = abs($size[5] -$size[3]); <br/>$under=$size[1]; upper-$under; <br/>$xpad=9; <br/>if (substr_count($text,chr(13))>=1) <br>{ <br> $mult=(substr_count($text,chr(13))); ypad=($mult*$crop*$s)+$s; <br>else $ypad=($crop-2)*$s; <br>$im = imagecreate($dx+$xpad,$th+$ypad); <br>$color = ImageColorAllocate($im, $bgred,$bggreen,$bgblue); <br>$black = ImageColorAllocate($im, 0,0,0); <br>$fontcolor = ImageColorAllocate($im, $chred,$chgreen,$chblue); <br>ImageRectangle($im,0,0,$dx+$xpad-1,$th+$ypad-1,$black); <br>ImageRectangle($im,0,0,$dx+$xpad,$th+$ypad,$white); <br>if ($shadow=="yes") <br>ImageTTFText($im, $s, 0, (int)($xpad/2)-2+1, $th+2+(int)($ypad/2) -3、$black、$fontname、$text); <br>ImageTTFText($im, $s, 0, (int)($xpad/2)-2, $th+2+(int)($ypad/2)-1-3, $fontcolor, $fontname, $text ); <br>Imagejpeg($im,"",$jpegquality); <br>ImageDestroy($im); <br><br>?> <br>############################################## ###### <br>これは次のフォームから作成できます: <br>#################################### ##################### <br>----------test.php-------------- ----- <br><html> <br><br> <br><title>新しいページ 1




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

文字



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


背景色


红色     
绿色     
蓝色


字元颜色


红色    
绿色      
蓝色


字型


阴影


トリミングサイズ


Jpeg 品格 (0-100)







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

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

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



新しいページ 1


  

  


 



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート