PHP ist nicht auf die Erstellung von HTML-Ausgaben beschränkt, es kann auch Bilder in einer Vielzahl von Formaten erstellen und verarbeiten, darunter GIF, PNG, JPEG, WBMP und XPM. Noch komfortabler ist, dass PHP den Bilddatenstrom direkt an den Browser ausgeben kann. Um Bildverarbeitungsfunktionen in PHP nutzen zu können, müssen Sie Folgendes tun Die GD -Bibliothek wird zum Kompilieren von PHP verwendet. Abhängig vom Bildformat, das Sie verarbeiten möchten, sind für die GD-Bibliothek und PHP möglicherweise andere Bibliotheken erforderlich. Mit den Bildfunktionen in PHP können Sie die Größe von Bildern in den folgenden Formaten ermitteln: JPEG, GIF, PNG, SWF, TIFF und JPEG2000. wenn Gewerkschaft In Verbindung mit der Erweiterung exif können Sie die in den Headern von JPEG- und TIFF-Bilddateien gespeicherten Informationen bearbeiten und so von Digitalkameras generierte Metadaten abrufen. Exif-bezogene Funktionen können ohne die GD-Bibliothek verwendet werden.
Sie können phpinfo.php verwenden, um die Installationskonfigurationsinformationen der GD-Bibliothek abzurufen:
Von GD unterstützte Formate
格式 | 支持读取 | 支持写入 | 备注 |
---|---|---|---|
JPEG | TRUE |
TRUE |
GD 1.8+ |
PNG | TRUE |
TRUE |
|
GIF | TRUE |
TRUE |
GD 1.6 和 GD 2.0.28 之间的版本不支持 |
XBM | TRUE |
TRUE |
PHP 4.0.1 开始支持读取,PHP 5.0.0 开始支持写入 |
XPM | TRUE |
FALSE |
PHP 4.0.1 开始支持读取。Windows 平台上不可用。需要 PHP 绑定的 GD 库 |
WBMP | TRUE |
TRUE |
GD 1.8+ |
WebP | TRUE |
TRUE |
GD 2.1+, PHP 5.5+ |
GD- und Bildverarbeitungsfunktionen
?gd_info – Informationen über die aktuell installierte GD-Bibliothek abrufen
?getimagesize – Bildgröße abrufen
?getimagesizefromstring – Informationen zur Bildgröße aus einer Zeichenfolge abrufen
?image_type_to_extension – Bildtyp abrufen Dateisuffix
?image_type_to_mime_type – Ruft den MIME-Typ des Bildtyps ab, der von getimagesize, exif_read_data, exif_thumbnail, exif_imagetype zurückgegeben wird. Bild nach radialer Transformation, Beschneidungsbereich optional
?imageaffinematrixconcat – Zwei Matrizen zusammenfassen (wie bei der Ausführung vieler Operationen in einer). go)
?imageaffinematrixget – Gibt ein Bild zurück, das das affine tramsformed src-Bild enthält, unter Verwendung eines optionalen Beschneidungsbereichs
?imagealphablending – Legt den Mischmodus des Bildes fest
?imageantialias – Ob die Antialias-Funktion verwendet werden soll
?imagearc – Einen elliptischen Bogen zeichnen
?imagechar – Ein Zeichen horizontal zeichnen
?imagecharup – Ein Zeichen vertikal zeichnen
?imagecolorallocate – Einem Bild eine Farbe zuweisen
?imagecolorallocatealpha – Eine Farbe zuweisen + Alpha zu einem Bild
?imagecolorat – Ermitteln Sie den Farbindexwert eines Pixels
?imagecolorclosest – Ermitteln Sie den Indexwert der Farbe, die der angegebenen Farbe am nächsten kommt
?imagecolorclosestalpha – Ermitteln Sie die Farbe, die der angegebenen Farbe am nächsten kommt plus Transparenz
?imagecolorclosesthwb – Ermitteln Sie das Schwarz und Weiß der Farbart, die der angegebenen Farbe am nächsten kommt. Farbindex
?imagecolordeallocate – Brechen Sie die Zuweisung der Bildfarbe ab
?imagecolorexact – Ermitteln Sie den Indexwert der angegebenen Farbe
?imagecolorexactalpha – Indexwert der angegebenen Farbe plus Transparenz abrufen
?imagecolormatch – Ein Bild erstellen, bei dem die Farbe der mittleren Palettenversion besser mit der Echtfarbenversion übereinstimmt
?imagecolorresolve – Indexwert der angegebenen Farbe abrufen Farbe oder der nächstmögliche Ersatzwert
?imagecolorresolvealpha – Den Indexwert der angegebenen Farbe + Alpha abrufen Oder der nächstmögliche Ersatzwert
?imagecolorset – Farbe für den angegebenen Palettenindex festlegen
?imagecolorsforindex – Abrufen die Farbe für einen Index
?imagecolorstotal – Ruft die Palette eines Bildes ab. Die Anzahl der Farben in
?imagecolortransparent – definiert eine Farbe als transparente Farbe
?imageconvolution – gilt für eine 3x3-Faltungsmatrix mit Koeffizienten div und Offset
?imagecopy – einen Teil des Bildes kopieren
? imagecopymerge – Teil eines Bildes kopieren und zusammenführen
?imagecopymergegray – Teil eines Bildes in Graustufen kopieren und zusammenführen
?imagecopyresampled – Teil kopieren eines Bildes mit Resampling und Größenänderung
?imagecopyresized – Teil eines Bildes kopieren und Größe ändern
?imagecreate – Ein neues palettenbasiertes Bild erstellen
?imagecreatefromgd2 – Ein neues Bild aus einer GD2-Datei oder URL erstellen
?imagecreatefromgd2part — Erstellt ein neues Bild aus einem Teil der angegebenen GD2-Datei oder URL
?imagecreatefromgd — Erstellt ein neues Bild aus einer GD-Datei oder URL
?imagecreatefromgif — Erstellt ein neues Bild aus einer Datei oder URL .
?imagecreatefromjpeg – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatefrompng – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatefromstring – Erstellen Sie ein neues Bild aus einem Bildstream in einer Zeichenfolge.
?imagecreatefromwbmp – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatefromwebp – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatefromxbm – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatefromxpm – Erstellen Sie ein neues Bild aus einer Datei oder URL.
?imagecreatetruecolor – Ein neues Echtfarbenbild erstellen
?imagecrop – Ein Bild unter Verwendung der angegebenen Koordinaten und Größe, x, y, Breite und Höhe zuschneiden
?imagecropauto – Ein Bild automatisch unter Verwendung einer der verfügbaren Optionen zuschneiden Modi
?imagedashedline – eine gestrichelte Linie zeichnen
?imagedestroy – ein Bild zerstören
?imageellipse – eine Ellipse zeichnen
?imagefill – einen Bereich füllen
?imagefilledarc – einen elliptischen Bogen zeichnen und füllen it
?imagefilledellipse – Zeichne eine Ellipse und fülle sie
?imagefilledpolygon – Zeichne ein Polygon und fülle es
?imagefilledrectangle – Zeichne ein Rechteck und fülle es
?imagefilltoborder – Fülle den Bereich bis zum Rand von die angegebene Farbe
?imagefilter – Filter auf ein Bild anwenden
?imageflip – Spiegelt ein Bild mit einem bestimmten Modus textbox
?imagefttext – Text mit FreeType 2-Schriftarten in ein Bild schreiben
?imagegammacorrect – Anwenden Gammakorrektur an einem GD-Bild
?imagegd2 – Ein GD2-Bild in einen Browser oder eine Datei ausgeben
?imagegd – GD-Bild in einen Browser oder eine Datei exportieren
?imagegif – Bild in einen Browser oder eine Datei exportieren.
?imagegrabscreen – Erfasst den gesamten Bildschirm
?imagegrabwindow – Erfasst ein Fenster
?imageinterlace – Aktivieren oder deaktivieren Sie Interlacing
?imageistruecolor – Überprüfen Sie, ob das Bild ein Echtfarbenbild ist
?imagejpeg – Bild in Browser oder Datei ausgeben.
?imagelayereffect – Setzen Sie das Alpha-Blending-Flag, um den gebündelten libgd-Layering-Effekt zu verwenden.
?imageline – Zeichnen Sie eine Linie.
?imageloadfont – Laden Sie eine neue Schriftart.
?imagepalettecopy – Kopieren Sie die Palette aus einem Bild zu einem anderen
?imagepalettetotruecolor – Konvertiert ein palettenbasiertes Bild in Echtfarben
?imagepng – Gibt ein Bild im PNG-Format an einen Browser oder eine Datei aus
?imagepolygon – Zeichne ein Polygon
?imagepsbbox – Gibt ein Textfeld mit einer PostScript Type1-Schriftart
?imagepsencodefont – Ändert den Zeichenkodierungsvektor in der Schriftart
?imagepsextendfont – Erweitert oder komprimiert die Schriftart
?imagepsfreefont – Gibt einen von Schriftarten belegten PostScript Type 1-Speicher frei
?imagepsloadfont – Laden Sie eine PostScript Type 1-Schriftart aus einer Datei
?imagepsslantfont – Schrägen Sie eine Schriftart
?imagepstext – Verwenden Sie eine PostScript Type1-Schriftart, um eine Textzeichenfolge auf einem Bild zu zeichnen
?imagerectangle – Zeichnen Sie ein Rechteck
?imagerotate – Ein Bild um einen bestimmten Winkel drehen
?imagesavealpha – Flag setzen, um beim Speichern eines PNG-Bilds vollständige Alphakanalinformationen zu speichern (im Gegensatz zu einer einzelnen transparenten Farbe)
?imagescale – Ein Bild skalieren mit die angegebene neue Breite und Höhe
?imagesetbrush – Legt das Pinselbild fest, das zum Zeichnen von Linien verwendet wird
?imagesetinterpolation – Legt die Interpolationsmethode fest
?imagesetpixel – Zeichnet ein einzelnes Pixel
?imagesetstyle – Legt den Stil fest Strichzeichnung
?imagesetthickness – Legen Sie die Breite der Strichzeichnung fest.
?imagesettile – Legen Sie die zum Füllen verwendete Textur fest.
?imagestring – Zeichnen Sie eine Schnurlinie horizontal.
?imagestringup – Zeichnen Sie eine Schnurlinie vertikal
?imagesx – Bildbreite abrufen
?imagesy – Bildhöhe abrufen
?imagetruecolortopalette – Ein Echtfarbenbild in ein Palettenbild konvertieren
?imagettfbbox – TrueType-Schriftart abrufen Textbereich
?imagettftext – Text mit TrueType-Schriftarten in ein Bild schreiben
?imagetypes – Die von der aktuellen PHP-Version unterstützten Bildtypen zurückgeben
?imagewbmp – Ein Bild an einen Browser oder eine Datei im WBMP-Format ausgeben
?imagewebp – Ein WebP-formatiertes Bild in einen Browser oder eine Datei ausgeben
?imagexbm – Ein XBM-Bild in einen Browser oder eine Datei ausgeben
?iptcembed – Binäre IPTC-Daten in ein JPEG-Bild einbetten
?iptcparse – Binäres IPTC analysieren Blöcke in einzelne Token
?jpeg2wbmp – Konvertieren Sie JPEG-Bilddateien in WBMP-Bilddateien
?png2wbmp – Konvertieren Sie PNG-Bilddateien in WBMP-Bilddateien
Die GD-Bibliothek kann sowohl unter Linux- als auch unter Windows-Systemen verwendet werden. Die Funktionen sind genau gleich, die Grafikkoordinaten sind jedoch versetzt. Werden Systeme untereinander verpflanzt, muss die Schnittstelle überprüft werden.
Chinesisch auf Bild zeichnen
<?php // 定义输出为图像类型 header("content-type:image/gif"); // 创建画布 $im = imagecreate(400, 200); // 背景 imagecolorallocate($im, 225, 66, 255); // 文本颜色 $text_color = imagecolorallocate($im, 233, 14, 91); $motto = "Test String 长白山"; //imagestring 默认英文编码,只支持UTF-8 //imagestring($im, 2, 0, 0, $motto, $text_color); //当代码文件为: //ANSI编码,需要转换 //UTF-8编码,不需要转换 //$motto = iconv("gb2312", "utf-8", $motto); imageTTFText($im, 20, 0, 0, 100, $text_color, "c:/windows/fonts/simhei.ttf", $motto); imagegif($im); imagedestroy($im); ?>
Bestätigungscode generieren
<?php session_start(); header("Content-type:image/png"); $imWidth = 70; $imHeight= 18; $im = imagecreate($imWidth, $imHeight); imagecolorallocate($im, 255, 255, 255); srand(microtime() * 100000); for($ix=0; $ix<4; $ix++) $number .= dechex(mt_rand(0, 15)); $_SESSION[check_check] = $number; for($ix=0; $ix<4; $ix++) { $x = $imWidth*$ix/ 4 + mt_rand(1, 8); $y = mt_rand(1, $imHeight / 4); $ft = mt_rand(3, 5); $cor = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200)); imagestring($im, $ft, $x, $y, $_SESSION[check_check][$ix], $cor); } imagepng($im); imagedestroy($im); ?>
Urheberrechtserklärung: Dieser Artikel ist das Werk des Bloggers Lang Ya Studio-Originalartikel dürfen ohne die Genehmigung des Bloggers nicht reproduziert werden.
Das Obige stellt die Verwendung der GD-Bibliothek durch PHP zum Generieren von Bestätigungscodes und zum Zeichnen chinesischer Schriftzeichen auf Bildern vor, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.