Question

J'ai un problème avec l'image-échantillon d'échantillonnage pour les tampons qui utilisent les valeurs alpha. Apparemment, l'algorithme prémultiplies les valeurs alpha de pixels avant le filtrage, cela entraîne des objets d'arrondi les frontières noires.

Étapes à reproduire:

  • Prenez une image complètement blanche dans la partie RVB et qui a un cercle blanc (antialiasé !!) (allez avec un cercle, pas avec un carré!) Sur fond noir dans la partie alpha (donc la partie alpha aura principalement totalement Pixels blancs et totalement noirs, ainsi que certains pixels de gradient sur les bordures du cercle en raison de l'antialiasage - cela signifie que l'image d'entrée n'est pas prémultiplie - elle est droite / non handicapée, car la partie RGB de l'image est complètement blanche).

  • Échec de l'image par moitié en utilisant l'image-échantillon

  • Composez le résultat sur une image complètement blanche

Ce que j'attendais: image complètement blanche

Ce que j'obtiens: une frontière grisâtre a arrêté le contour du cercle

Je suis à peu près sûr que cela est dû à l'alpha prémultiplié dans l'algorithme Scaledown (l'algorithme multiplie la valeur alpha des pixels avec sa valeur RGB pour calculer la nouvelle valeur RGB - donc les pixels blancs deviendront gris)

Est-ce que quelqu'un connaît un travail de travail pour cela?

Était-ce utile?

La solution

Je suggérerais d'essayer l'image Magick pour PHP.

http://www.php.net/manual/en/imagick.resizeimage.php

http://www.php.net/manual/en/imagick.scaleimage.php

D'après mon expérience, tous les tracas concernant l'imagerie en PHP disparaissent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top