Derzeit möchte ich ein transparentes PNG mit der niedrigsten Qualität erstellen.Erstellen Sie eine transparente PNG-Datei mit PHP
Der Code:
<?php
function createImg ($src, $dst, $width, $height, $quality) {
$newImage = imagecreatetruecolor($width,$height);
$source = imagecreatefrompng($src); //imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.
imagecopyresampled($newImage,$source,0,0,0,0,$width,$height,$width,$height);
imagepng($newImage,$dst,$quality); //imagepng() creates a PNG file from the given image.
return $dst;
}
createImg ('test.png','test.png','1920','1080','1');
?>
Allerdings gibt es einige Probleme:
Muss ich bestimmte eine PNG-Datei benötigen, bevor sie eine neue Datei zu erstellen? Oder kann ich ohne vorhandene PNG-Datei erstellen?
Warning: imagecreatefrompng (test.png): failed to open stream: Datei oder ein Verzeichnis in
C: \ DSPadmin \ DEV \ ajax_optipng1.5 \ create.php auf Leitung 4
Obwohl es eine Fehlermeldung gibt, erzeugt es immer noch eine PNG-Datei. Was ich jedoch gefunden habe, ist, dass die Datei ein schwarzes Farbbild ist. Muss ich irgendeinen Parameter spezifizieren, um ihn transparent zu machen?
Danke.
Vielen Dank Ihre Hilfe! Würde es Ihnen etwas ausmachen, mir beizubringen, wie Sie die Größe der PNG-Datei minimieren können?Ist das Einstellen der Qualitätsstufe "9" in der imagepng-Funktion das einzige, was ich tun kann? danke – user782104
'imagepng' s Standard "Qualität" Einstellung (die Kompressionen genannt werden sollte, da 'png's Kompressionen verlustfrei ist) ist 9 (afaik, ich habe ohne Set-Qualität (234' Bytes'), Qualität 0 (ein paar hundert KB) und eine Einstellung von 9 (234 Bytes)). Ich denke, das ist der beste GD. –
das macht meine schwarzen Linien verschwinden –