Aktueller Standort: Startseite> Neueste Artikel> Wie liest oder verarbeitet man die Breite und Höhe eines Bildes, wenn ich ImageCreateFrommpng () verwendet habe?

Wie liest oder verarbeitet man die Breite und Höhe eines Bildes, wenn ich ImageCreateFrommpng () verwendet habe?

M66 2025-06-28

In PHP wird die Funktion der ImagecreateFrommpng () verwendet, um eine Bildressource (GD -Bildressource) aus einer PNG -Format -Bilddatei zu erstellen. Diese Funktion ist sehr häufig für die Verarbeitung von Bilddateien, insbesondere wenn es um dynamische Bildgenerierung, Bildverarbeitung oder Bildbearbeitung geht. Nachdem viele Entwickler ImagecreateFrommpng () verwendet haben, um Bildressourcen zu erstellen, müssen sie häufig die Breite und Höhe des Bildes zur weiteren Verarbeitung erhalten.

In diesem Artikel wird detailliert erklärt, wie die Breite und Höhe eines Bildes gelesen und verarbeitet, wenn die Funktion der ImageCreateFrommpng () verwendet wird.

1. Verwenden

PHP bietet zwei Funktionen: ImagesX () und Imagesy (), um die Breite und Höhe der Bildressource zu erhalten. Durch diese beiden Funktionen können wir die spezifische Größe des Bildes erhalten, nachdem wir ImagecreateFrommpng () aufgerufen haben, um eine Bildressource zu erstellen.

Beispielcode:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// laden PNG Bilddatei</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Breite des Bildes</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Höhe des Bildes</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// Breite und Höhe des Ausgangsbildes</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Breite des Bildes ist: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" Pixel\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Höhe des Bildes ist: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" Pixel\n"</span></span><span>;

</span><span><span class="hljs-comment">// Zerstöre Bildressourcen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Verwenden Sie in diesem Beispiel zunächst die Funktion ImagecreateFrommpng () , um die Bilddatei zu laden, und verwenden Sie imagsX (), um die Breite des Bildes zu erhalten, und verwenden Sie Imagesy (), um die Höhe des Bildes zu erhalten. Schließlich die Breite und Höhe des Bildes in den Browser ausgeben.

2. Kombinieren Sie GetImageSize (), um Bildbreite und Höhe zu erhalten

Zusätzlich zur Verwendung von ImagesX () und imagesy () können wir auch die Funktion getImageSize () verwenden, um die Breite und Höhe des Bildes zu erhalten. GetImageSize () gibt nicht nur die Größe des Bildes zurück, sondern auch weitere Bildinformationen, einschließlich des MIME -Bildtyps des Bildes usw. Dies ist sehr nützlich für Szenarien, in denen Dateiinformationen verarbeitet werden müssen.

Beispielcode:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// verwenden getimagesize() Holen Sie sich die Breite des Bildes和高度</span></span><span>
</span><span><span class="hljs-variable">$image_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getimagesize</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Breite des Bildes</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>];

</span><span><span class="hljs-comment">// Holen Sie sich die Höhe des Bildes</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>];

</span><span><span class="hljs-comment">// Breite und Höhe des Ausgangsbildes</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Breite des Bildes ist: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" Pixel\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Höhe des Bildes ist: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" Pixel\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Hier gibt GetImageSize () ein Array zurück, das erste Element des Arrays ( $ image_info [0] ) ist die Breite des Bildes und das zweite Element ( $ image_info [1] ) ist die Höhe des Bildes.

3. Verarbeiten Sie die Breite und Höhe des Bildes

In vielen Bildverarbeitungsszenarien müssen wir möglicherweise eine gewisse Verarbeitung basierend auf der Breite und der Höhe des Bildes durchführen. Passen Sie beispielsweise die Größe des Bildes an, schneiden Sie das Bild usw. durch, indem Sie die Breite und Höhe des Bildes erhalten, wir können diese Funktionen erreichen.

3.1 Bildskalierung

Wenn wir das Bild auf die angegebene Breite und Höhe skalieren müssen, können wir die Funktion "ImageCopyResistation () verwenden.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ladenBilddatei</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Breite und Höhe des Originalbildes</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// Setzen Sie neue Breite und Höhe</span></span><span>
</span><span><span class="hljs-variable">$new_width</span></span><span> = </span><span><span class="hljs-number">200</span></span><span>;
</span><span><span class="hljs-variable">$new_height</span></span><span> = </span><span><span class="hljs-number">150</span></span><span>;

</span><span><span class="hljs-comment">// Erstellen Sie ein neues leeres Bild</span></span><span>
</span><span><span class="hljs-variable">$new_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>);

</span><span><span class="hljs-comment">// verwenden imagecopyresampled() Skalierungsbild</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopyresampled</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>, </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);

</span><span><span class="hljs-comment">// Das vergrenzte Bild ausgeben</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);

</span><span><span class="hljs-comment">// Zerstöre Bildressourcen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel laden wir ein PNG -Bild, erhalten seine Breite und Höhe und skalieren es auf die angegebene 200x150 -Größe unter Verwendung der Funktion "ImageCopyReSampled () . Schließlich geben wir das skalierte Bild über ImagePng () aus.

3.2 Bildzuschneiden

Wenn wir einen Teil aus dem Bild tauchen möchten, können wir auch entsprechende Vorgänge basierend auf Breite und Höhe ausführen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ladenBilddatei</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// Holen Sie sich die Breite des Bildes和高度</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// Stellen Sie die Koordinaten und Abmessungen des Erntebereichs ein</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Horizontale Achse beginnen</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// Vertikale Koordinate beginnen</span></span><span>
</span><span><span class="hljs-variable">$crop_width</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$crop_height</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;

</span><span><span class="hljs-comment">// Erstellen Sie ein neues leeres Bild</span></span><span>
</span><span><span class="hljs-variable">$cropped_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);

</span><span><span class="hljs-comment">// verwenden imagecopy() Schneiden durchführen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);

</span><span><span class="hljs-comment">// Ausgabebild</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);

</span><span><span class="hljs-comment">// Zerstöre Bildressourcen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel kultivieren wir den Bereich aus dem Bild mit einer Größe von 100x100 aus den Koordinaten (50, 50) und geben das abgeschnittene Bild aus.

Zusammenfassen

Nach dem Laden einer Bilddatei unter Verwendung von ImagecreateFrommpng () ist das Erhalten der Breite und Höhe des Bildes eine grundlegende Anforderung bei der Bildverarbeitung. Wir können die Breite und Höhe des Bildes direkt über die Funktionen von ImagesX () und imagesy () erhalten oder GetImageSize () verwenden, um weitere Informationen zum Bild zu erhalten. In praktischen Anwendungen der Bildverarbeitung werden häufig die Breiten- und Höhenwerte verwendet, um Größe, Pflanzenbilder und andere Vorgänge anzupassen, um den gewünschten Effekt zu erzielen.

Die oben genannten sind die grundlegenden Methoden und Techniken zur Lesebreite und -höhe bei der Verarbeitung von PNG -Bildern. Nach dem Verständnis dieser Funktionen können Sie die Bildverarbeitung in PHP besser durchführen.