Das dynamische Erzeugen von Farben und Bildern ist eine sehr häufige Voraussetzung für die Webentwicklung. PHP bietet einige integrierte Bildverarbeitungsfunktionen, bei denen ImageColorallocatealpha eine sehr nützliche Funktion ist, die uns helfen kann, Farben mit Transparenz (RGBA) zu generieren. In diesem Artikel wird vorgestellt, wie diese Funktion verwendet wird, um RGBA -Farbplatten dynamisch zu generieren.
Erstens wird die PHP -Bildverarbeitung hauptsächlich in der GD -Bibliothek implementiert. Mit der GD -Bibliothek können wir Bilder erstellen, Bilder bearbeiten und verschiedene Pixel im Bild verarbeiten. Die ImageColorallocatealpha -Funktion ist ein Mitglied der GD -Bibliothek, mit der wir dem Bild eine Farbe zuweisen und die Transparenz der Farbe (Alpha -Wert) festlegen können.
Die grundlegende Syntax der Funktion "ImageColorallocatealpha" lautet wie folgt:
imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha): int
$ Bild : Bildressource.
$ rot , $ green , $ blau : Der RGB -Wert der Farbe, zwischen 0 und 255.
$ alpha : Transparenzwert von 0 (vollständig undurchsichtig) bis 127 (vollständig transparent).
Der Rückgabewert der Funktion ist eine Farbkennung, mit der ein Diagramm in einem Bild gezeichnet werden kann.
Angenommen, wir müssen dynamisch eine RGBA -Farbplatte erstellen, um verschiedene Farben und ihre Transparenz anzuzeigen. Hier ist ein einfaches Beispiel, das zeigt, wie RGBA -Farbplatten dynamisch mit der Funktion "ImageColorallocatealpha" generiert werden können:
<?php
// Erstellen a 256x256 Leeres Bild
$image = imagecreatetruecolor(256, 256);
// Transparenz zu unterstützen,Wir müssen einrichten alpha Gang
imagesavealpha($image, true);
// Durchquerende Generation RGBA Farbbrett
for ($r = 0; $r < 256; $r += 32) {
for ($g = 0; $g < 256; $g += 32) {
for ($b = 0; $b < 256; $b += 32) {
// Zufällig Transparenz einstellen
$alpha = rand(0, 127);
// Farben zuweisen,Achten Sie auf Transparenzwerte
$color = imagecolorallocatealpha($image, $r, $g, $b, $alpha);
// Zeichnen Sie rechteckige Blöcke, um Farbe darzustellen
imagefilledrectangle($image, $r, $g, $r + 31, $g + 31, $color);
}
}
}
// Ausgabe Bild zum Browser
header('Content-Type: image/png');
imagepng($image);
// Reinigen Sie den Speicher
imagedestroy($image);
?>
Wir haben zuerst ein 256x256 -Bild erstellt und ImagesAvealpha eingerichtet, um transparente Kanäle zu ermöglichen.
Mit einem Dreischicht für die Schleife erstellen wir verschiedene Kombinationen von RGB-Werten und weisen Farben mit Transparenz über die Funktion "ImageColorallocatealpha" zu, die Farben mit Transparenz zuweisen.
Die imageFillectangel -Funktion wird verwendet, um Rechteckblöcke auf einem Bild zu zeichnen. Jedes Rechteck repräsentiert eine Farbe.
Schließlich geben wir das Bild über die Header -Funktion zum Browser aus.
Über den obigen Code können wir im Browser eine 256x256 -Farbplatte sehen, wobei jedes kleine Stück unterschiedliche RGB -Kombinationen und Transparenz zeigt. Aufgrund der Verwendung der ImageColorallocatealpha -Funktion können wir jeder Farbe unterschiedliche Transparenz hinzufügen, sodass die Farbplatte nicht nur die Farbe, sondern auch Änderungen der Transparenz anzeigt.
Bei der Erzeugung von Farbplatten müssen Sie möglicherweise auch die URL -Adresse als Teil des Bildes verwenden. Sie können beispielsweise den folgenden Code verwenden, um ein Bild von einer externen URL zu laden und es mit einer Farbkarte zu kombinieren:
<?php
// Laden von Fernbildern
$imageUrl = 'http://m66.net/path/to/your/image.png';
$image = imagecreatefrompng($imageUrl);
// Bildgröße festlegen
$width = imagesx($image);
$height = imagesy($image);
// Ausgabebild
header('Content-Type: image/png');
imagepng($image);
// Ressourcen frei machen
imagedestroy($image);
?>
Durch die ImagecreateFrommpng -Funktion können wir PNG -Bilder externer URLs laden.
Verwenden Sie ImagePng , um Bilder in den Browser auszugeben.
Auf diese Weise können wir Remote -Bilder auf der Farbplatte anzeigen und eine andere Transparenz für sie festlegen.