Heim >Backend-Entwicklung >PHP-Tutorial >Erfahren Sie, wie Sie mit PHP dynamische Bilder generieren

Erfahren Sie, wie Sie mit PHP dynamische Bilder generieren

WBOY
WBOYOriginal
2016-08-08 09:33:591100Durchsuche

Viele Leute wissen nicht, dass PHP Nicht-HTML-Daten generieren kann. Dies ist sehr nützlich für die Generierung von Bildgrafiken. Sie können ein einfaches horizontales Werbebild aus der Datenbank generieren oder einfach eine Grafikschaltfläche generieren
Im folgenden Beispiel verwende ich die Schriftart TTF
Normalerweise nenne ich es „button.php3“:

############################################## ###
-----button.php3------
Header("Inhaltstyp: Bild/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); 🎜> ImageGif($im);
ImageDestroy($im);
?> ############################################## ###
Es ist sehr wichtig, dass Sie keine HTML-Tags vor oder nach den Tags einfügen ein Tippfehler außerhalb des PHP-Tags
Das obige Skript kann in der Webseite mit dieser Syntax aufgerufen werden:
############################################## ###
----test.php-----

Neue Seite 1


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

Das Ergebnis von test.php sieht folgendermaßen aus:

Der Parameter „s“ dient zum Festlegen der Schriftgröße
Dies ist, wenn s=18:

Hinweis I:
Der Schriftartenpfad „/fonts/TIMES.TTF“ kann aus dem Windows/Fonts-Verzeichnis abgerufen werden. Die Schriftartendatei TIMS.TTF können Sie testen, indem Sie sie in das Schriftartenverzeichnis Ihrer Website kopieren um ihr Feedback abzugeben

Beachten Sie, dass ich zuerst einen schwarzen quadratischen Bereich gezeichnet habe und dann eine weiße Verschiebung verwendet habe, um einen 3D-Effekt zu erzeugen. Die L-Methode ist auch auf einem hellen Hintergrund zu sehen, aber Sie können die Hintergrundfarbe in eine dunkle Farbe ändern, um den gleichen Effekt zu erzielen Der Effekt wird für die Schriftarten Express Dreidimensionalität erzielt
Sie müssen zunächst sicherstellen, dass Ihre PHP-Installation für die Unterstützung von GD und TTF konfiguriert ist. Bitte lesen Sie die PHP-FAQ. Ich empfehle, libgd.a nach /usr/local/lib und gd*.h-bezogene Dateien nach /usr/local zu kopieren /include Dann
„make install“ für die FreeTTF-Bibliothek

Die Chai-HTTF-Schriftart finden Sie hier http://rover.wiesbaden.netsurf.de/~kikita/

Hinweis:

Der folgende Quellcode verbessert die obige mehrzeilige Textanzeige:
############################################## ###
--------------button.php-----------------

Header("Inhaltstyp: Bild/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="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"
sonst
$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; }
sonst $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);

?>
############################################### #####
这可以下面这个 form 来产生:
############################################### #####
----------test.php-----



Neue Seite 1





文字


大小


断句的位置(Umbruchposition)


背景颜色


红色     
     绿色     
      蓝色


字元颜色


红色    
      绿色      
     蓝色


字型


阴影 是  
               


Zuschnittgröße


JPEG-Format (0-100)



      





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

或是直接像上例一样呼叫:  

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



Neue Seite 1


  

  


 

以上就介绍了学会用PHP产生动态的影像图, 包括了动态影像图方面的内容, 希望对PHP教程有兴趣的朋友有所帮助.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn