In der Webentwicklung möchten wir manchmal Textbilder mit schönen Schatteneffekten für Schaltflächen, Titel oder Wasserzeichen generieren. Glücklicherweise bietet die GD -Bibliothek von PHP leistungsstarke Bildverarbeitungsfunktionen, in denen die Funktion "ImageColorallocatealpha ()) dabei hilft, Farben mit Transparenz zu definieren, wodurch es einfach ist, Text mit transparenten Schatten zu zeichnen.
In diesem Artikel wird schrittweise erläutert, wie die Funktion "ImageColorallocatealpha () verwendet wird, um ein Textbild mit transparentem Schatteneffekt zu erstellen.
Zunächst müssen wir eine Bild -Leinwand erstellen. Hier verwenden wir die Funktion imageCrreatTueColor (), um ein echtes Farbbild zu erstellen.
<?php
// Breit erstellen 400px,hoch 100px Leinwand
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// Hintergrundfarbe setzen(Weiß)
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
Damit der transparente Teil des PNG -Bildes korrekt angezeigt werden kann, müssen wir den Mischmodus ausschalten und den speichernden Alpha -Kanal aktivieren.
// Schalten Sie den Mischmodus aus
imagealphablending($image, false);
// Aktivieren alpha halten
imagesavealpha($image, true);
Die Parameter der Funktion " ImageColorallocatealpha ()) sind (Bild, Rot, Grün, Blau, Alpha) , wobei der Alpha -Wert von 0 (vollständig undurchsichtig) bis 127 (vollständig transparent) reicht.
Zum Beispiel definieren wir einen schwarzen durchscheinenden Schatten:
// Definieren Sie schwarze durchscheinende Schatten
$shadow_color = imagecolorallocatealpha($image, 0, 0, 0, 60);
HINWEIS: 60 Hier bedeutet hier semi-transparente Effekte.
Wir verwenden die Funktion imagettftext () , um Text zu zeichnen, und müssen den Schriftart -Pfad angeben.
// Schriftart Dateipfad(Bitte passen Sie die tatsächliche Situation an)
$font = __DIR__ . '/arial.ttf';
$text = 'Hello, m66.net!';
$font_size = 24;
// Schatten zeichnen(Ein paar Pixel leicht versetzt)
imagettftext($image, $font_size, 0, 22, 62, $shadow_color, $font, $text);
// Zeichnen Sie den Haupttext(Schwarz)
$text_color = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, $font_size, 0, 20, 60, $text_color, $font, $text);
Schließlich geben wir das Bild in das PNG -Format aus und befreien Ressourcen.
// aufstellen header
header('Content-Type: image/png');
// Ausgabebild
imagepng($image);
// Freier Speicher
imagedestroy($image);
?>
<?php
$width = 400;
$height = 100;
$image = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
imagealphablending($image, false);
imagesavealpha($image, true);
$shadow_color = imagecolorallocatealpha($image, 0, 0, 0, 60);
$text_color = imagecolorallocate($image, 0, 0, 0);
$font = __DIR__ . '/arial.ttf';
$text = 'Hello, m66.net!';
$font_size = 24;
imagettftext($image, $font_size, 0, 22, 62, $shadow_color, $font, $text);
imagettftext($image, $font_size, 0, 20, 60, $text_color, $font, $text);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Schriftart Datei <br> Der obige Code verwendet die Datei arial.ttf font. Bitte stellen Sie sicher, dass die Schriftdatei im Verzeichnis vorhanden ist, in dem sich das Skript befindet, oder an einem anderen Schriftartpfad auf Ihrem Server geändert werden.
Transparenzanpassung
Die Alpha -Parameter können nach Bedarf eingestellt werden. Wenn Sie transparenter sein möchten, können Sie einen größeren Wert verwenden (fast 127). Wenn Sie undurchsichtiger sein möchten, können Sie einen kleineren Wert verwenden.
Bereitstellungsvorschläge <br> Stellen Sie bei der Bereitstellung sicher, dass die GD -Bibliothek in der PHP -Konfiguration des Servers aktiviert ist, andernfalls wird der Code nicht ausgeführt.