PHP bietet eine reichhaltige GD -Bibliotheksfunktion, um Pixel, Farben und Transparenz bei der Arbeit mit dynamisch erzeugten Bildern zu manipulieren. Unter ihnen ist die Funktion "ImageColorallocatealpha ()) ein sehr nützliches Werkzeug, mit dem Bilder Farben mit Transparenz zuzuordnen können. Dies ist besonders wichtig für die Notwendigkeit, durchscheinende Wasserzeichen zu überlagern, Schatteneffekte zu erzeugen oder Bilder mit transparenten Bereichen zu erzeugen.
In diesem Artikel wird angezeigt, wie Sie imageColorallocatealpha () verwendet werden und den Beispielcode kombinieren, um zu demonstrieren, wie die Transparenz von Elementen in einem Bild dynamisch angepasst werden kann.
Die Definition von ImageColorallocatealpha () lautet wie folgt:
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
$ bild : Bildressourcenhandle, erstellt von ImageCrreatTueColor () .
$ rot , $ green , $ blau : RGB -Farbkomponenten, Bereich 0–255.
$ alpha : Transparenz, Bereich 0 (vollständig undurchsichtig) bis 127 (vollständig transparent).
Hinweis : Der Alpha -Wert von PHP und die übliche Transparenzdefinition sind das Gegenteil. Je größer der Wert ist, desto transparenter ist er.
Hier ist ein einfaches Beispiel, das zeigt, wie ein Kreis mit einstellbarer Transparenz in einem dynamischen Bild unter Verwendung von ImageColorallocatealpha () zeichnet.
<?php
// Setzen Sie den Inhaltsheader,Browserausgabe PNG Bild
header('Content-Type: image/png');
// Erstellen a 200x200 Echte farbige Leinwand
$width = 200;
$height = 200;
$image = imagecreatetruecolor($width, $height);
// Aktivieren alpha Kanalsparen
imagesavealpha($image, true);
// Erstellen a完全透明的背景
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
// Dynamisch Transparenz einstellen(Hier verwenden wir GET Parametersteuerung)
$alpha = isset($_GET['alpha']) ? intval($_GET['alpha']) : 50;
if ($alpha < 0) $alpha = 0;
if ($alpha > 127) $alpha = 127;
// Weisen Sie ein Rot mit Transparenz zu
$redAlpha = imagecolorallocatealpha($image, 255, 0, 0, $alpha);
// Zeichnen Sie einen Kreis in der Mitte der Leinwand
imagefilledellipse($image, $width / 2, $height / 2, 150, 150, $redAlpha);
// Ausgabebild
imagepng($image);
// Zerstöre Bildressourcen
imagedestroy($image);
?>
Zugriffsbeispiel:
https://m66.net/transparent_circle.php?alpha=30
Sie können die Änderung der Transparenz im Browser dynamisch erkennen, indem Sie die Alpha -Parameter (0–127) einstellen.
Aktivieren Sie den Alpha -Kanal <br> Die Verwendung von ImagesAvealpha ($ image, true) ist erforderlich, ansonsten kann der transparente Bereich schwarz gefüllt werden.
Hintergrund gefüllt mit transparenter Farbe <br> Um sicherzustellen, dass der transparente Teil des Bildes von Standardhintergrund nicht überschrieben wird, füllen wir zuerst den Hintergrund mit einer völlig transparenten Farbe.
Transparenzrichtung <br> Im Gegensatz zu CSS ist der Transparenzwert in GD, desto transparenter ist er. Zum Beispiel ist 0 vollständig undurchsichtig, während 127 vollständig transparent ist.
Erzeugen Sie durchscheinende Overlays für dynamische Wasserzeichen.
Erstellt Text mit Schatten- oder Halo -Effekten.
Generieren Sie transparente PNG für Webseiten oder Anwendungen.
Durch die Kombination von ImageColorallocatealpha () und anderen GD -Funktionen (wie Imagestring () und Imagettftext () ) können Sie komplexe dynamische Bildeffekte erstellen, um den visuellen Ausdruck der Website zu verbessern.