ARNO*

Geek dilettante habitant une belle et grande propriété sur la Côte d’améthyste

  • J’ai un souci très bizarre avec la réduction d’image avec GD, qui introduit du bruit dans les zones transparentes des images PNG. Et quand on superpose une dizaine d’images de cette façon, le bruit finit par se voir, et ça fait une zone transparente qui n’est plus vraiment transparente (et ça fait un effet assez dégueulasse).

    Sur ce serveur, voici l’horreur (il y a plein de tâches sur le quadrillage du fond transparent) :

    Mais la même chose sur un autre serveur, nickel :

    J’ai bien trouvé des évocations de ce noise provoqué par imagecopyresampled, mais pas de solution. Surtout que pour le coup, ça semble venir d’installations différentes des serveurs (les deux serveurs sont sur des Debian récentes, avec PHP 7.3 activé).

    Est-ce que vous auriez des idées de piste ? (Si je vous dis qu’en plus, ce client, il m’a collé un service informatique totalement indigent, et que la configuration du serveur c’est un peu pour ma pomme et c’est pas du tout ma spécialité ?)

    • Le seul commentaire intéressant évoque des erreurs d’arrondi. Est-ce qu’il y aurait une extension (de PHP ? du serveur ?) qui augmenterait la profondeur des calculs mathématiques ?

      [edit] J’ai installé les mêmes extensions PHP sur le serveur problématique, ça n’a pas corrigé mon problème.

    • Du coup je pousse la version 9.1.0 de mon #plugin #SPIP image_responsive. J’ai ajouté l’option que l’on active ainsi :

      define("_IMAGE_CORRIGER_BRUIT_TRANSPARENT", true);

      (par défaut elle est désactivée) qui force les valeurs de transparence à 127 si elles sont supérieures à 124. Ce qui supprime le bruit des zones transparentes après le imagecopyresampled. (Par contre ça rallonge les temps de calcul copieusement, puisque ça parcourt les images pixel par pixel…)

    • Au passage, ça pousse aussi la version 9.0, qui désactive la réduction sur les images Gif. Parce que la réduction d’un Gif animé supprime l’animation, et qu’après tout ce temps (et un retour à la mode très surprenant), les gens utilisent uniquement le Gif pour faire des animations (si vous avez encore des gens qui font des Gif pour publier des photos, faut leur dire qu’iils sont restés bloqués en 1998).