Diese Tutorial wurde von LLCoolDannY geschrieben.
------------------------------------------------
Hi, in diesem Tutorial, seht ihr wie man mit PHP dynamische Bilder erstellen kann.
Fangen wir mit einem einfachen Rechteck an (Erklärung im Code mit PHP-Kommentaren):
Ich denke, hierfür brauche ich kein Bild zu zeigen, da es nur eine schwarze Fläche 500x200px ist.
-------------------------------------------------------------------------------------------------
Nun beschriften wir das Rechteck (z.B. für eine dynamische Signatur):
Hierfür brauche ich wohl auch kein Bild
----------------------------------------------------------------------
So nun kann man das Bild im Bild noch mal mit anderen Farben einfüllen.
Ich hab mal eine Deutschlandfahne gemacht
So hier ist der Code dafür:
So siehts dann aus:
----------------------------------------------------------------------
So jetzt kommen wir zu Kreisen, Ellipsen und Linien:
Kreise, Halbkreise, Ellipsen:
Linien, Gestrichtelte Linien:
----------------------------------------------------------------------
Jetzt kommen wir zu einem sehr interessanten Teil vom Tutorial:
Mit existierenden Bildern z.B. eine dynamische Signatur bilden:
Das Ergebniss könnte dann so aussehen:
Vorher:
Nachher:
----------------------------------------------------------------
So ich denke, alle hauptsächlichen Funktionen sind drin.
MfG, LLCoolDannY
Zusatz:
Hier sind alle (mir Bekannten) Verweise zu Image*()-Funktionen:
-----------------------------------------------------------
imagechar
imagecharup
imagecolorallocate
imagecolorat
imagecolorclosest
imagecolorexact
imagecolorresolve
imagecolorset
imagecolorsforindex
imagecolorstotal
imagecolortransparent
imagecopyresized
imagecreate
imagecreatefromgif
imagedashedline
imagedestroy
imagefill
imagefilledpolygon
imagefilledrectangle
imagefilltoborder
imagefontheight
imagefontwidth
imagegif
imageinterlace
imageline
imageloadfont
imagepolygon
imagepsbbox
imagepsencodefont
imagepsfreefont
imagepsloadfont
imagepstext
imagerectangle
imagesetpixel
imagestring
imagestringup
imagesx
imagesy
imagettfbbox
imagettftext
-----------------------------------------------------------
_________________
[L][L][C][O][O][L][D][A][N][N][Y]
------------------------------------------------
Hi, in diesem Tutorial, seht ihr wie man mit PHP dynamische Bilder erstellen kann.
Fangen wir mit einem einfachen Rechteck an (Erklärung im Code mit PHP-Kommentaren):
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
$width = 500; # Später die Breite des Rechtecks
$height = 200; # Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
$black = ImageColorAllocate($img, 0, 0, 0); # Hier wird der Variable $black die Farbe schwarz zugewiesen
# Die drei nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
ImageFill($img, 0, 0, $black); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $black, also Schwarz
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
?>
-------------------------------------------------------------------------------------------------
Nun beschriften wir das Rechteck (z.B. für eine dynamische Signatur):
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
##################################################
$width = 100; // Später die Breite des Rechtecks
$height = 50; // Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
##################################################
##################################################
$black = ImageColorAllocate($img, 0, 0, 0); # Hier wird der Variable $black die Farbe schwarz zugewiesen
$white = ImageColorAllocate($img, 255, 255, 255); # Hier wird der Variable $white die Farbe weiß zugewiesen
# Die drei nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
##################################################
##################################################
ImageFill($img, 0, 0, $black); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $black, also Schwarz
ImageString($img, 2, 26, 20, "Der Text", $white);
# Die 2 steht für die GD-Lib interne Schriftart (es gibt insgesamt 5, also probierts aus).
# Die 26 steht für die Position von Links, also 26px von Links entfernt.
# Die 20 steht für die Postion von Oben, also 20px von oben entfernt.
# Der Text, ist der, der später im Bild erscheinen soll.
# $white steht für die Farbe die der Text haben soll.
###################################################
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
----------------------------------------------------------------------
So nun kann man das Bild im Bild noch mal mit anderen Farben einfüllen.
Ich hab mal eine Deutschlandfahne gemacht
So hier ist der Code dafür:
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
##################################################
$width = 300; # Später die Breite des Rechtecks
$height = 300; # Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
##################################################
##################################################
$black = ImageColorAllocate($img, 0, 0, 0); # Hier wird die Farbe schwarz einer Variable zugewiesen
$red = ImageColorAllocate($img, 255, 0, 0); # Hier wird die Farbe rot einer Variable zugewiesen
$yellow = ImageColorAllocate($img, 255, 255, 0); # Hier wird die Farbe gelb einer Variable zugewiesen
##################################################
##################################################
ImageFill($img, 0, 0, $yellow); # Erst wird das Bild mit gelb gefüllt.
ImageFilledRectangle($img, 0, 0, 300, 100, $black); # Mit ImageFillRectangle wird ein weiter Bereich des Bildes mit schwarz gefüllt
# Die 1. 0 ist die Entfernung in px von Links.
# Die 2. 0 ist die Entfernung in px von Oben.
# Die 300 ist die Breite der Farbe.
# Die 100 ist die Höhe der Farbe.
ImageFilledRectangle($img, 0, 101, 300, 200, $red);
# Hier die gleichen Sachen wie bei der Schwarzfüllung, nur mit anderen Koordinaten und anderer Farbe.
##################################################
ImagePNG($img);
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
----------------------------------------------------------------------
So jetzt kommen wir zu Kreisen, Ellipsen und Linien:
Kreise, Halbkreise, Ellipsen:
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
##################################################
$width = 100; // Später die Breite des Rechtecks
$height = 100; // Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
##################################################
##################################################
$red = ImageColorAllocate($img, 255, 0, 0); # Hier wird der Variable $red die Farbe rot zugewiesen
$white = ImageColorAllocate($img, 255, 255, 255); # Hier wird der Variable $white die Farbe weiß zugewiesen
##################################################
ImageFill($img, 0, 0, $white); # Erst wird das Bild mit weiß gefüllt.
ImageArc($img, 50, 50, 90, 20, 1, 180, $red); # Jetzt wird ein Kreis gezogen
# Der erste Parameter 50 steht für die Entfernung in px von rechts
# Der zweite Parameter 50 steht für die Entfernung in px von oben
# Der dritte Parameter 90 steht für die Größe des Kreises (oder der Ellipse) in der Breite
# Der vierte Parameter 20 steht für die Größe des Kreises (oder der Ellipse) in der Höhe
# Der fünfte Parameter 1 steht für den Startwinkel
# Der sechste Parameter 180 steht für den Endwinkel des Kreises (bzw. der Ellipse)
######################################################
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
##################################################
$width = 250; # Später die Breite des Rechtecks
$height = 250; # Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
##################################################
##################################################
$white = ImageColorAllocate($img, 255, 255, 255); # Hier wird die Farbe weiß einer Variable zugewiesen
$black = ImageColorAllocate($img, 0, 0, 0); # Hier wird die Farbe schwarz einer Variable zugewiesen
##################################################
ImageFill ($img, 0, 0, $white); # Das Bild wird mit weiß gefüllt.
ImageLine($img, 1, 125, 250, 125, $black); # Mit ImageLine wir eine Linie gezeichnet
#
# Die 1 steht für den Abstand in px von links
# Die 1. 125 steht für den Abstand in px von Oben vom linken Punkt der Strecke
# Die 250 steht für den Abstand in px von rechts
# Die 2. 125 steht für den Abstand in px von Oben vom rechten Punkt der Strecke
#
# !!! WICHTIG: Für geschtrichelte Lininen einfach den Befehl 'ImageDashedLine()' benutzen
# Die Parameter sind gleich wie bei 'ImageLine' !!!
#
#
##################################################
##################################################
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
Jetzt kommen wir zu einem sehr interessanten Teil vom Tutorial:
Mit existierenden Bildern z.B. eine dynamische Signatur bilden:
PHP-Code:
<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen
##################################################
$width = 100; // Später die Breite des Rechtecks
$height = 100; // Später die Höhe des Rechtecks
$img = ImageCreateFromJPEG('g.jpg'); # Hier wird das Bild einer von einem Vorhandenen Bild benutzt (hier: g.jpg)
#
# Seit Version 1.6 der GD-Library ist .gif abgeschaltet also:
#
#---------------------------------------------------
# Zuhause von der GD-Lib: [url]http://www.boutell.com/gd/[/url]
#---------------------------------------------------
#
# Wenn ihr die GD-Library 2.0 habt immer .jpg oder .png aber kein .gif benutzen!
#
# So kann man GD-Library einstellen:
#
# 1. Öffnet im Windows-Ordner die php.ini z.B. C:\Windows\php.ini
#
# 2. Jetzt sucht (STR+F) nach ';Windows Extensions' (ohne den Hochkommata)
#
# 3. Dann schreibt 'extension=php_gd2.dll' unter 'extension=php_gd.dll'
#
# 4. Jetzt macht ein ; vor 'extension=php_gd.dll'. Also aus 'extension=php_gd.dll' mach ';extension=php_gd.dll'
#
# 5. Oder wenn ihr GD-Lib 1.X wollt, dann macht es umgekehrt
##################################################
$black = ImageColorAllocate($img, 0, 0, 0); # Farbe schwarz mit $black festlegen
$font_height = ImageFontHeight(3); # Hier wird die Schrifthöhe mit 3 belegt (hier könnt ihr mit den Werten rumprobieren)
$font_width = ImageFontWidth(3); # Hier wird die Schriftbreite mit 3 belegt (hier könnt ihr mit den Werten rumprobieren)
$image_height = ImageSY($img); # Hier wird in einer Variable die Höhe des Bildes (hier g.jpg) gespeichert
$image_width = ImageSX($img); # Hier wird in einer Variable die Breite des Bildes (hier g.jpg) gespeichert
$text = 'Mein Name ist LLCoolDannY!'; # Hier ist der Text, der später im Bild stehen soll
$length = $font_width*strlen($text); # Hier wird die Schriftbreite an das Bild angepasst
# Hier kriegt man durch Teilungen die Mitte des Bildes heraus #
$image_center_x = ($image_width/2)-($length/2);
$image_center_y = ($image_height/2)-($font_height/2);
###############################################################
ImageString($img, 3, $image_center_x, $image_center_y, $text, $black);
/**
* Die 3 nach der Variable $img steht für die GD-Lib interne Schriftart diese geht von 1-5 (also ausprobieren)
*
* --------------------------------------------------------------------------------------------------------------------------------
* Mit $image_center_x und $image_center_y wurde die Mitte herausgefunden und nun angewandt. (Dort können auch eigene Zahlen stehen)
* Beispiel:
*
* ImageString($img, 3, 200, 150, 'Das ist ein Testtext', $black);
*
* Hier ist der String (Zeichenkette, also der Text) 200px von oben und 150px von links vom Bildrand entfernt
*
* --------------------------------------------------------------------------------------------------------------------------------
*
*/
ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>
Vorher:
Nachher:
----------------------------------------------------------------
So ich denke, alle hauptsächlichen Funktionen sind drin.
MfG, LLCoolDannY
Zusatz:
Hier sind alle (mir Bekannten) Verweise zu Image*()-Funktionen:
-----------------------------------------------------------
imagechar
imagecharup
imagecolorallocate
imagecolorat
imagecolorclosest
imagecolorexact
imagecolorresolve
imagecolorset
imagecolorsforindex
imagecolorstotal
imagecolortransparent
imagecopyresized
imagecreate
imagecreatefromgif
imagedashedline
imagedestroy
imagefill
imagefilledpolygon
imagefilledrectangle
imagefilltoborder
imagefontheight
imagefontwidth
imagegif
imageinterlace
imageline
imageloadfont
imagepolygon
imagepsbbox
imagepsencodefont
imagepsfreefont
imagepsloadfont
imagepstext
imagerectangle
imagesetpixel
imagestring
imagestringup
imagesx
imagesy
imagettfbbox
imagettftext
-----------------------------------------------------------
_________________
[L][L][C][O][O][L][D][A][N][N][Y]
Kommentar