Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Transparenz bei der Größenänderung von PNG-Bildern mit der GD-Bibliothek von PHP bewahren?

Wie kann ich die Transparenz bei der Größenänderung von PNG-Bildern mit der GD-Bibliothek von PHP bewahren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-09 01:36:12298Durchsuche

How Can I Preserve Transparency When Resizing PNG Images with PHP's GD Library?

Beibehaltung der Transparenz in neu abgetasteten PNG-Bildern mithilfe von GDs imagecopyresampled

In PHP stellt die GD-Bibliothek die Funktion imagecopyresampled zur Größenänderung von Bildern bereit. Bei der Verwendung mit PNG-Bildern mit transparenten Bereichen geht die Transparenz jedoch häufig verloren und wird durch eine Volltonfarbe ersetzt.

Um dieses Problem zu beheben, sind die folgenden Schritte entscheidend:

  1. Alpha-Überblendung deaktivieren:
    Deaktivieren Sie vor der Größenänderung die Alpha-Überblendung mithilfe der Funktion „imagealphablending“ mit „false“ als Argument. Dadurch wird verhindert, dass sich die Farben des Quellbilds mit denen des Zielbilds vermischen.
  2. Alpha-Speicherung aktivieren:
    Stellen Sie sicher, dass die Alpha-Transparenz im skalierten Bild erhalten bleibt, indem Sie imagesavealpha mit „true“ aufrufen Argument. Dadurch wird das Zielbild angewiesen, seine Transparenzinformationen beizubehalten.

Hier ist ein aktualisierter Codeausschnitt, der diese Anpassungen enthält:

$srcImage = imagecreatefrompng($uploadTempFile);
$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled(...);

Durch die Implementierung dieser Maßnahmen wird die Größe des PNG-Bilds geändert Bewahren Sie die Transparenz genau.

Das obige ist der detaillierte Inhalt vonWie kann ich die Transparenz bei der Größenänderung von PNG-Bildern mit der GD-Bibliothek von PHP bewahren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn