Die GD -Bibliothek von PHP unterstützt verschiedene Bildtypen. Insbesondere werden Palettenbilder unterschiedlich als echte Farbbilder verarbeitet. Wenn das Originalbild ein Palettenbild ist und das Zielbild echte Farbe verwendet oder umgekehrt, tritt eine Abweichung während der Farbumwandlung auf.
Fixmethode:
Verwenden Sie beim Erstellen des Zielbildes einen Bildtyp, der mit dem Originalbild übereinstimmt.
<?php
$src = imagecreatefrompng('http://gitbox.net/images/sample.png');
$width = 100;
$height = 100;
$clip = imagecreatetruecolor($width, $height);
imagecopy($clip, $src, 0, 0, 50, 50, $width, $height);
header('Content-Type: image/png');
imagepng($clip);
imagedestroy($clip);
imagedestroy($src);
?>
Hier wird ImagecrreatetRueColor verwendet, um sicherzustellen, dass das Zielbild wahre Farbe ist und Farbverzerrungen vermeiden.
Bilder wie PNG enthalten normalerweise transparente Kanäle (Alpha -Kanäle). Wenn transparente Informationen während des Abfangens nicht korrekt verarbeitet werden, erscheinen die Farben inkonsistent oder es wird ein schwarzer Hintergrund angezeigt.
Fixmethode:
Schalten Sie das Alpha -Mischen ein und speichern Sie transparente Kanaleinstellungen für das Zielbild.
<?php
$src = imagecreatefrompng('http://gitbox.net/images/sample.png');
$width = 100;
$height = 100;
$clip = imagecreatetruecolor($width, $height);
imagesavealpha($clip, true);
imagealphablending($clip, false);
$transparent = imagecolorallocatealpha($clip, 0, 0, 0, 127);
imagefill($clip, 0, 0, $transparent);
imagecopy($clip, $src, 0, 0, 50, 50, $width, $height);
header('Content-Type: image/png');
imagepng($clip);
imagedestroy($clip);
imagedestroy($src);
?>
Die Farbtiefe und der Farbraum von Bildern aus verschiedenen Bildformaten oder unterschiedlichen Quellen können inkonsistent sein, insbesondere bei der Konvertierung zwischen JPEG und PNG ist sie anfällig für Farbunterschiede.
Fixmethode:
Versuchen Sie, das Bildformat bei der Verarbeitung von Screenshots konsistent zu halten, oder verwenden Sie Funktionen in der GD -Bibliothek, um den Farbraum umzuwandeln.
Verschiedene GD -Bibliotheksversionen verschiedener Server führen auch zu inkonsistenten Bildverarbeitungsergebnissen. Die Aktualisierung der GD -Bibliothek oder die Sicherstellung der Umweltkonsistenz kann Probleme verringern.