Qualitätsverlust beim bearbeiten einer Grafik

Alice

Erfahrenes Mitglied
Qualitätsverlust

Komplett Edit:

Ich erzeuge mit PHP und GDLib eine Grafik. Sobald die Grafik komplett erzeugt wurde, wird die Grafik auf dem Server gespeichert. Bis hierhin ist die Qualität absolut in Ordnung.

Um einen speziellen Effekt zu erreichen, muss um die Grafik herum, eine Art Rahmen (jede Seite +10px) gelegt werden.

Dies mache ich so:
PHP:
// Zeichnungsbereichgröße vergrössern um 10px
$NewSize1 = $size[0] + 20;
$NewSize2 = $size[1] + 20;
$NewImage = ImageCreateTrueColor($NewSize1, $NewSize2);
$HG = ImageColorAllocate($NewImage,255,255,255);
ImageFill($NewImage,0,0,$HG);
ImageCopy($NewImage, $imend, 10, 10, 0, 0, $size[0], $size[1]);
ImagePNG($NewImage, $Verzeichnis);

Ich bin mir ganz sicher, das der Qualitätsverlust durch den Code verursacht wird. Denn ich habe ein paar sleep(30); Befehle ins Skript gebaut, um die erzeugte Grafik in den Zwischenschritten zu sehen. Der Qualitätsverlust tritt erst auf, wenn der Rahmen erzeugt wird.

Qualitätsverlust: Artefakte, Verwaschung, Unschärfe
 
Zuletzt bearbeitet:
Aufgrund der Rescale-Filter in ImageMagick ist die Qualität dort sehr viel besser. Mit Umwegen/Tricks/Hingucken/Lesen kann man aber auch in der GD-Lib "recht gute" Ergebnisse erhalten.

(A) Es sollte imagecopyresampled() benutzt werden.
(B) Es gibt noch dieses Code Snippet, das über eine Unscharf-Maske das Ergebnis verbessert

mfg chmee
 
Ich habe den "schlechten Code" bereits gefunden. Habe deswegen den kompletten Beitrag geändert.
 
Zurück