Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie ImageFill (), um einen transparenten Hintergrund für ein Bild festzulegen

Verwenden Sie ImageFill (), um einen transparenten Hintergrund für ein Bild festzulegen

M66 2025-05-23

Bei Verwendung der GD -Bibliothek von PHP zur Bildverarbeitung müssen wir manchmal einen transparenten Hintergrund für das Bild festlegen, z. Um diesen Effekt zu erzielen, können Sie hauptsächlich die beiden Funktionen verwenden: ImageColorallocatealpha () und ImageFill () .

In diesem Artikel wird ausführlich erläutert, wie diese beiden Funktionen verwendet werden und den vollständigen Beispielcode angibt.

Funktion Einführung

ImageColorallocatealpha ()

 int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Diese Funktion wird verwendet, um dem angegebenen Bild eine Farbe zuzuweisen und Transparenz zu setzen.

  • $ rot, $ green, $ blau : RGB-Farbwert (0-255)

  • $ alpha : Transparenzwert (0 ist vollständig undurchsichtig, 127 ist vollständig transparent)

Der zurückgegebene Wert ist ein Farbkennung, der in Funktionen wie ImageFill () verwendet werden kann.

Bildfill ()

 bool imagefill ( resource $image , int $x , int $y , int $color )

Diese Funktion wird verwendet, um das Bild mit der angegebenen Farbe zu füllen.

  • $ x, $ y : Füllen Sie die Koordinaten des Startpunkts aus

  • $ color : Die zu verwendende Farbkennung

In Kombination mit ImageColorallocatealpha () können wir die gesamte Leinwand mit transparenten Farben füllen.

Praktisches Beispiel: Erstellen Sie ein PNG -Bild mit transparentem Hintergrund

Im Folgenden finden Sie einen vollständigen PHP -Code, der zeigt, wie die GD -Bibliothek verwendet wird, um ein 200x200 PNG -Bild mit transparentem Hintergrund zu generieren und einen roten Kreis in der Mitte zu zeichnen.

 <?php
// Erstellen a 200x200 Wahres Farbbild
$width = 200;
$height = 200;
$image = imagecreatetruecolor($width, $height);

// Schalten Sie den Farbmischmodus aus,Speichern aktivieren alpha Kanalinformationen
imagealphablending($image, false);
imagesavealpha($image, true);

// Weisen Sie eine völlig transparente Farbe zu
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);

// Füllen Sie die gesamte Leinwand mit transparenten Farben
imagefill($image, 0, 0, $transparent);

// Rot zuweisen(undurchsichtig)
$red = imagecolorallocate($image, 255, 0, 0);

// Zeichne einen roten Kreis in der Mitte
imagefilledellipse($image, $width / 2, $height / 2, 100, 100, $red);

// Das Ausgangsbild ist PNG
header('Content-Type: image/png');
imagepng($image);

// Freier Speicher
imagedestroy($image);
?>

Code analysieren

1 ?? Bildressourcen erstellen <br> Wir verwenden ImagecrreatTueColor (), um eine echte Farb -Leinwand zu erstellen.

2 ?? Aktivieren Sie den transparenten Hintergrund
GD speichert standardmäßig keine Alpha -Informationen und erfordert:

 imagealphablending($image, false);
imagesavealpha($image, true);

3 ?? Zuweisen und mit transparenten Farben füllen <br> Verwenden Sie ImageColorallocatealpha (), um eine vollständig transparente Farbe (Alpha = 127) zu erstellen, und verwenden Sie dann ImageFill (), um die gesamte Leinwand zu füllen.

4 ?? Zeichnen Sie Inhalte <br> Hier haben wir einen roten Kreis gezeichnet, den Sie in Text, Zeilen, Bilder usw. ändern können.

5 ?? Ausgabebild <br> Verwenden Sie Header ('Inhaltstyp: Image/PNG'), um den Ausgabetyp festzulegen, und verwenden Sie dann ImagePng (), um in den Browser auszugeben, oder übergeben Sie den Dateinamen, um auf der Festplatte zu speichern, zum Beispiel:

 imagepng($image, '/path/to/save/output.png');

Tipps

? Speichern in Datei <br> <br> Wenn Sie das Bild auf dem Server speichern möchten, können Sie dies tun:

 imagepng($image, 'https://m66.net/images/output.png');

? Wechseln Sie zu GIF
Obwohl GIF auch transparente Hintergründe unterstützt, ist die transparente Implementierungsmethode unterschiedlich. Sie können imageColortrArsparent () verwenden.

? Achten Sie auf Berechtigungen <br> Stellen Sie beim Speichern im Serververzeichnis sicher, dass der PHP -Prozess Schreibberechtigungen enthält.