Frage

Ich habe ein Problem mit imagecopyresArted für Puffer, die Alpha-Werte verwenden. Anscheinend führt der Algorithmus vor, der die Pixel-Alpha-Werte vor dem Filtern darstellt, ergibt sich in schwarzen Grenzen.

Schritte zur Reproduzierung:

  • Nehmen Sie ein Bild, das im RGB-Teil völlig weiß ist, und das hat einen (antialiased !!) weißen Kreis (mit einem Kreis, nicht mit einem Quadrat!) auf schwarzem Hintergrund im Alpha-Teil (so das Das Alpha-Teil hat meistens total weiße und total schwarze Pixel sowie einige Gradient-Pixel an den Grenzen des Kreises aufgrund von Antialiasing - das bedeutet, dass das Eingabebild nicht premipliziert ist - es ist gerade / nicht auf, da der RGB-Teil des Bildes ist völlig weiß).

  • skaledown das Bild um die Hälfte mit einem imagecopyresampled

  • komponiert das Ergebnis über ein völlig weißes Bild

    was ich erwarten würde: völlig weißes Bild

    was ich bekomme: Eine graue Grenze ist der Umriss des Kreises

    Ich bin mir ziemlich sicher, dass dies auf Premultiplized-Alpha innerhalb des Scaledown-Algorithmus zurückzuführen ist (der Algorithmus multipliziert den Pixel-Alpha-Wert mit seinem RGB-Wert, um den neuen RGB-Wert zu berechnen - so werden weiße Pixel grau)

    Kennt jemand dafür eine Arbeitshaus?

War es hilfreich?

Lösung

Ich würde vorschlagen, Bild magick für PHP auszuprobieren.

http://www.php.net/manual/de/imagick.resizeImage.php

http://www.php.net/manual/de/imagick.sclaimage.php

In meiner Erfahrung sind alle Probleme in der Bilde in PHP, einfach weg.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top