Heim > Backend-Entwicklung > PHP-Problem > Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)

Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)

WBOY
Freigeben: 2023-03-13 12:12:02
Original
8850 Leute haben es durchsucht

Im vorherigen Artikel habe ich Ihnen „Wie lade ich Dateien in PHP hoch?“ vorgestellt. Nach der Lektüre werden Sie es verstehen! 》, der Ihnen ausführlich vorstellt, wie Sie Dateien in PHP hochladen. In diesem Artikel werfen wir einen Blick auf die relevanten Kenntnisse der Bildverarbeitung in PHP. Ich hoffe, dass er für alle hilfreich ist.

Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)

Bildverarbeitung ist etwas, dem wir bei der PHP-Arbeit häufig begegnen. Wir stoßen auf viele Szenarien, in denen wir Bilder verarbeiten müssen, wie z. B. Bildverifizierungscodes, Bildwasserzeichen usw. Tatsächlich liegt der Schwerpunkt beim Erlernen der Bildverarbeitung auf dem Erlernen der Funktionen des GD-Systems in PHP. Die Bildverarbeitung in PHP erfordert die Unterstützung der GD-Bibliothek. Schauen wir uns daher zunächst das relevante Wissen über die GD-Bibliothek an.

GD-Bibliothek

Die GD-Bibliothek ist tatsächlich in C-Sprache geschrieben und kann zusätzlich zu PHP auch verwendet werden Die GD-Bibliothek wird in vielen Sprachen verwendet und bietet viele Schnittstellen zum Verarbeiten von Bildern. Mithilfe der GD-Bibliothek können Sie auch verschiedene Grafiken, Bilder, statistische Diagramme und Bildüberprüfungscodes auf der Seite zeichnen zu erreichen.

Beispiele sind wie folgt:

<?php
phpinfo();
?>
Nach dem Login kopieren

Wenn nach der Eingabe im Ausgabeergebnis die beiden unten gezeigten Optionen angezeigt werden, bedeutet dies, dass das aktuelle Gerät die Bildverarbeitung über GD unterstützt:


Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)Oder Sie können Folgendes verwenden:

<?php
    print_r(gd_info());
?>
Nach dem Login kopieren

Nach der Eingabe ausführen. Wenn das Ausgabeergebnis wie in der Abbildung unten dargestellt ist, bedeutet dies auch, dass der aktuelle Computer die Bildverarbeitung über GD unterstützt.


Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)Wenn es nicht installiert ist, können Sie es auch vervollständigen, indem Sie einfach den vorherigen Kommentar von „extension=php_gd2.dll“ in der php.ini-Konfigurationsdatei unter Windows löschen.

In PHP ist die Verarbeitung von Bildern über die GD-Bibliothek im Allgemeinen in vier grundlegende Schritte unterteilt:

    Leinwand erstellen
  • Bild zeichnen
  • Bild ausgeben
  • Ressourcen freigeben
  • Pass In diesen vier Schritten haben wir die grundlegende Bedienung des Bildes abgeschlossen. Schauen wir uns an, wie man es bedient.

Leinwand erstellenAlle unsere Zeichnungen und Bildbearbeitungen müssen auf einem Hintergrundbild, der Leinwand, abgeschlossen werden, die als Bild verstanden werden kann. Wir haben einen temporären Bereich im Speicher, der als Leinwand dient Speichern von Bildinformationen und nachfolgende Bildvorgänge werden in diesem Bereich, der Leinwand, ausgeführt.


imagecreate() und imagecreatetruecolor() werden zum Erstellen einer Leinwand verwendet. Ihr Syntaxformat ist wie folgt:

imagecreate(int $width, int $height)
imagecreatetruecolor(int $width, int $height)
Nach dem Login kopieren

Dabei repräsentiert $width die Breite von Die erstellte Leinwand ist verständlicherweise die Breite des Bildes. $height stellt die Höhe der erstellten Leinwand dar, also die Höhe des Bildes. Beide Funktionen können zum Erstellen einer Leinwand verwendet werden, der Unterschied besteht jedoch darin, dass sie dies können für verschiedene Farbbereiche geeignet. imagecreate() imagecreatetruecolor() 用来创建画布,它们的语法格式如下:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
?>
Nach dem Login kopieren

其中,$width 表示创建画布的宽度也可以理解为图像的宽度,$height 表示创建画布的高度也就是图像的高度

这两个函数都可以用来创建画布,不过其中不同的是,他们可以容纳的色彩范围不同。

示例如下:

<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
    echo &#39;画布的宽度为:&#39;.imagesx($img).&#39;像素&#39;;
    echo &#39;<br>画布的高度为:&#39;.imagesy($img).&#39;像素&#39;;
?>
Nach dem Login kopieren

由于只是创建了一个画布上面并没有东西,浏览器也不会输出画布,但是可以通过 imagesx() 和 imagesy() 来获取图像的宽和高:

imagegif(resource $image[, string $filename])
imagejpeg(resource $image[, string $filename[, int $quality]])
imagepng(resource $image[, string $filename])
Nach dem Login kopieren
Nach dem Login kopieren

输出结果:

Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)

由此我们便完成了创建一个画布。

除了使用上面两个函数创建画布之外,还可以通过以下方式,通过文件或者url创建图像:

  • imagecreatefromgif() : 通过 GIF 文件或者 URL 新建一个图像

  • imagecreatefromjpeg() : 通过 JPEG 文件或者 UR 新建一个图像

  • imagecreatefrompng() : 通过 PNG 文件或者 UR L新建一个图像

  • imagecreatefromwbmp() : 通过 WBMP 文件或者URL,新建一个图像

输出图片

上述示例中,我们已经成功的创建了画布,在PHP中不同格式的图像也需要不同的函数来进行输出,不同的函数如下所示:

  • imagegif() : 输出一个GIF格式图像到浏览器或文件

  • imagejpeg() : 输出一个JPEG格式图像到浏览器或文件

  • imagepng()

  • Das Beispiel lautet wie folgt:

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>
Nach dem Login kopieren
Nach dem Login kopieren

Da gerade eine Leinwand erstellt wurde und sich nichts darauf befindet, gibt der Browser die Leinwand nicht aus, aber die Breite und Höhe des Bildes kann über imagesx() und ermittelt werden imagesy():

imagedestroy(resource $image)
Nach dem Login kopieren
Nach dem Login kopieren
🎜 Ausgabeergebnis: 🎜🎜🎜Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)🎜🎜Jetzt haben wir die Erstellung einer Leinwand abgeschlossen. 🎜🎜Zusätzlich zur Verwendung der beiden oben genannten Funktionen zum Erstellen einer Leinwand können Sie ein Bild auch über eine Datei oder URL auf folgende Weise erstellen: 🎜🎜🎜🎜imagecreatefromgif() : Erstellen Sie ein neues Bild über eine GIF-Datei oder URL 🎜 🎜🎜🎜imagecreatefromjpeg() : Erstellen Sie ein neues Bild über eine JPEG-Datei oder URL 🎜🎜🎜🎜imagecreatefrompng() : Erstellen Sie ein neues Bild über eine PNG-Datei oder URL 🎜🎜🎜🎜 imagecreatefromwbmp() : Erstellen Sie ein neues Bild über eine WBMP-Datei oder URL 🎜🎜🎜🎜🎜🎜Ausgabebild 🎜🎜🎜🎜Im obigen Beispiel haben wir erfolgreich eine Leinwand in verschiedenen Formaten in PHP erstellt Bilder erfordern auch unterschiedliche Funktionen für die Ausgabe. Die verschiedenen Funktionen sind wie folgt: 🎜🎜🎜🎜imagegif() : Ein Bild im GIF-Format an den Browser oder eine Datei ausgeben 🎜 🎜🎜🎜imagejpeg () : Ein Bild im JPEG-Format in einen Browser oder eine Datei ausgeben 🎜🎜🎜🎜imagepng() : Ein Bild im PNG-Format in einen Browser oder eine Datei ausgeben 🎜 🎜🎜🎜Ihr Syntaxformat ist wie folgt: 🎜🎜
imagegif(resource $image[, string $filename])
imagejpeg(resource $image[, string $filename[, int $quality]])
imagepng(resource $image[, string $filename])
Nach dem Login kopieren
Nach dem Login kopieren

其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。

示例如下:

首先我在根目录中已经保存了一个名为php.png的图像文件

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>
Nach dem Login kopieren
Nach dem Login kopieren

输出结果:

Wie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende)

通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

释放图像资源

通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

imagedestroy(resource $image)
Nach dem Login kopieren
Nach dem Login kopieren

其中$image表示需要释放资源的图像

示例如下:

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
    imagedestroy($image);
?>
Nach dem Login kopieren

因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonWie gebe ich Bilder in PHP aus? (Detaillierte Erläuterung der Legende). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage