Bei der Bildverarbeitung ist es eine übliche Voraussetzung, die Anzahl der in einem Bild enthaltenen Farben zu verstehen. Für PNG -Bilder ist dieser Prozess etwas komplizierter, da das PNG -Format Transparenz- und mehrere Farbmodelle unterstützt. Glücklicherweise bietet PHP integrierte Funktionen, mit denen wir diese Informationen problemlos erhalten können.
In diesem Artikel wird im Detail erläutert, wie die Funktionen für die ImageColorStotal und die ImagecreateFrommpng verwendet werden, um die Gesamtzahl der Farben in einem PNG -Bild zu erhalten.
Mit der Funktion der ImagecreateFrommpng wird eine Bildressource aus einer PNG -Datei erstellt. Seine Funktion besteht darin, ein PNG -Bild zu lesen und es in eine Bildressource umzuwandeln, die PHP verarbeiten kann. Danach können wir verschiedene Vorgänge auf dieser Bildressource ausführen.
Funktionsprototyp:
<span><span>resource </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>);
</span></span>
Parameter:
$ Dateiname : Der Pfad zur PNG -Bilddatei.
Rückgabewert:
Wenn Sie erfolgreich sind, geben Sie eine Bildressource zurück. Gibt falsche zurück, wenn es fehlgeschlagen ist.
Die ImageColorStotal -Funktion gibt die Gesamtzahl der in einem Bild verwendeten Farben zurück. Es basiert auf der Farbpalette des Bildes, um die Anzahl der Farben zu berechnen, sodass es für Bilder mit indizierten Farbmustern funktioniert.
Funktionsprototyp:
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(resource </span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>
Parameter:
$ Bild : Bildressource.
Rückgabewert:
Gibt die Gesamtzahl der im Bild verwendeten Farben zurück. Wenn das Bild den direkten Farbmodus (z. B. RGB) verwendet, beträgt dieser Wert normalerweise 0.
Durch die Kombination dieser beiden Funktionen können wir leicht die Anzahl der Farben im PNG -Bild erhalten. Die spezifischen Schritte sind wie folgt:
Verwenden Sie ImagecreateFrommpng, um eine PNG -Bilddatei zu öffnen und Bildressourcen zu erhalten.
Verwenden Sie die ImageColorStotal -Funktion, um die Gesamtzahl der im Bild verwendeten Farben zu erhalten.
Ausgangsergebnis.
Hier finden Sie einen vollständigen Beispielcode, der zeigt, wie diese beiden Funktionen verwendet werden, um die Anzahl der Farben in einem PNG -Bild zu erhalten.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// aufstellen PNG Bilddateipfad</span></span><span>
</span><span><span class="hljs-variable">$imagePath</span></span><span> = </span><span><span class="hljs-string">'example.png'</span></span><span>;
</span><span><span class="hljs-comment">// Versuche von PNG Bildressourcen für Dateierstellung</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-variable">$imagePath</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Bildressource erfolgreich erstellt wird</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$image</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Image Ressourcen können nicht erstellt werden。Bitte überprüfen Sie, ob der Dateipfad korrekt ist。"</span></span><span>;
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// Holen Sie sich die Anzahl der im Bild verwendeten Farben</span></span><span>
</span><span><span class="hljs-variable">$colorCount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabe Farbnummer</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Sollen PNG Die Gesamtzahl der im Bild enthaltenen Farben ist: "</span></span><span> . </span><span><span class="hljs-variable">$colorCount</span></span><span>;
</span><span><span class="hljs-comment">// Bildressourcen freigeben</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">?></span></span><span>
</span></span>
Bildressourcenerstellung : Laden Sie die angegebene PNG -Datei in die $ Bildvariable über die Imagecreatefrommpng -Funktion. Wenn der Bilddateipfad falsch ist oder die Datei nicht gelesen werden kann, wird die Funktion falsch zurückgegeben. Wir müssen sie entsprechend überprüfen und verarbeiten.
Erhalten Sie die Anzahl der Farben : Die imageColorstotal -Funktion gibt die Anzahl der im Bild verwendeten Farben zurück. Für PNG-Bilder, insbesondere für PNGs, die den indizierten Farbmodus verwenden, ist die Anzahl der zurückgegebenen Farben ungleich Null. Wenn das Bild den direkten Farbmodus (z. B. RGB) verwendet, gibt die Funktion 0 zurück.
Kostenlose Ressource : Verwenden Sie schließlich die Funktion des Imagedestroy , um Bildressourcen freizugeben, um Speicherlecks zu vermeiden.
Wenn das Bild eine Palette (d. H. Indexierten Farbmodus) verwendet, gibt ImageColorstotal die tatsächliche Anzahl von Farben zurück. Wenn das Bild jedoch den direkten Farbmodus (RGB) verwendet, wird diese Funktion 0 zurückgegeben, sodass Sie bei der Verwendung des Farbmodus des Bildes auf den Farbmodus achten müssen.
Wenn die Bilddateien, mit denen Sie sich befassen, groß sind oder häufige Vorgänge wie diese erfordern, wird empfohlen, den Code entsprechende Ausnahmeregelung und Fehlerprüfung hinzuzufügen.
Durch die Verwendung von ImagecreateFrommpng- und ImageColorStotal -Funktionen bietet PHP eine einfache und effiziente Möglichkeit, die Gesamtzahl der Farben eines PNG -Bildes zu erhalten. Dies ist sehr nützlich für die Bildanalyse, Optimierung und Verarbeitung. Hoffentlich hilft Ihnen dieser Artikel, diese beiden Funktionen besser zu verstehen und sie in Ihrem Projekt anzuwenden.
Verwandte Tags:
PNG