Comment arrêter GD2 de laver les couleurs sur le redimensionnement d'images?

J'ai développé une communauté de partage de photos site à l'aide de CodeIgniter 1.7. Les Photos qui sont téléchargés par les membres sont automatiquement redimensionnées dans un certain nombre de formats, pour lequel j'utilise la CodeIgniter de Manipulation de l'Image de la classe. Cette classe est intégrée dans le cadre et surtout un wrapper autour de plusieurs bibliothèques de manipulation d'images, comme GD, GD2, ImageMagick, et NETPBM. Sur ma machine, je ne peux que faire usage de GD2, donc c'est où cette question sera d'environ.

À mon problème. Voici un exemple d'une photo redimensionnée sur mon site. Notez que l'original était très grand, plus de 3000px de large:

http://www.jungledragon.com/image/195/female_impala_close-up.html

Maintenant, regardez cette même image, également redimensionné, juste un peu plus grand sur Flickr:

http://www.flickr.com/photos/fledder/3763538865/in/set-72157621744113979

Voir la différence? Je vais essayer de combler cette énorme lacune. La première chose que j'ai faite a été d'appliquer un filtre de netteté aux images. Vous pouvez voir le résultat ici:

Comment arrêter GD2 de laver les couleurs sur le redimensionnement d'images?

Bien que pas encore parfait, il a au moins approches le niveau de netteté de l'image Flickr. Le problème reste que les couleurs sont lavés, comme si leur saturation est diminué. Ce qui se passe avant le filtre d'accentuation déjà, donc il doit être dans GD2.

Cette question est d'une importance vitale pour moi, mais je ne sais pas où chercher. J'ai trouvé certains .NET threads parlant de chroma sous-échantillonnage, mais je ne sais pas quoi faire avec cette information dans ma configuration. Je suis à la recherche de toute solution qui fonctionne dans les limites de mon installation.

Mise à jour:, par les Présentes, le fichier d'origine, exactement comme je l'ai transféré à la fois sur mon site et sur Flickr:

http://www.jungledragon.com/img/DSC07275.jpg

Mise à jour 2: je suis choqué. Dans le bon sens. Il m'a fallu beaucoup de peine à installer ImageMagick, mais après le passage (ce qui était une question de réglage 'imagemagick' comme la bibliothèque à utiliser dans le Code de l'Allumeur de manipulation de l'image de la classe, le résultat de l'image de test est le suivant:

Comment arrêter GD2 de laver les couleurs sur le redimensionnement d'images?

ImageMagick le redimensionnement est de le faire exactement comme prévu. Les couleurs sont préservées, et la netteté est là. Oui, j'ai désactivé mon personnalisée d'affûtage routine depuis il n'est plus nécessaire à cause de ImageMagick. En plus de cela, le processus est beaucoup plus rapide et moins gourmands en mémoire aussi. Et voici une autre grande partie: je ne peux pas l'expliquer, mais je n'ai absolument rien à dire ImageMagick pour utiliser un profil colorimétrique spécifique, ce qui a été suggéré par l'utilisateur @Alix. Dans mon test, jusqu'à présent, il semble que la couleur de l'information est respecté avec ou sans profil incorporé. La sortie est tout simplement une version plus petite de l'entrée. Est ImageMagick vraiment intelligente, ou suis-je en train de rêver?

  • Cela ressemble à un problème de profil. Faire les photos viennent avec un profil ICC? Serait-il possible de voir une réelle fichier d'origine (pas le Flickr de la version)? Est-il possible de l'essayer avec ImageMagick, si seulement temporairement pour voir si il y a une différence?
  • Le Flickr de l'image, en effet, est livré avec un haut-profil: IEC 61966-2.1 Default RGB colour space - sRGB pas entièrement sûr de ce qui doit être fait, mais c'est là où vous devez être à la recherche.
  • J'ai mis à jour la question d'inclure un lien vers le fichier d'origine. Merci pour le pointeur, j'espère que cela permettra de réduire ma recherche. Je ne peux pas passer à ImageMagick dans ma configuration actuelle, mais si il s'avère que c'est la seule solution possible, je vais chercher des arrangements dans ce domaine. Pour l'instant, j'espère que ce problème peut être résolu en GD2.
  • Votre image d'origine est un Adobe RGB (1998) profil ICC ci-joint. Hmm. Avez-vous de Photoshop? Pouvez-vous essayer de convertir l'image à sRGB, et le télécharger à nouveau? Je crains que je ne pense pas que GD va être en mesure de traiter avec le profil, il ne sait rien sur eux, de sorte que vous aurez à nourrir cuillère le droit des données. ImageMagick connaît le concept de profils, au moins à un niveau de base, d'où ma question.
  • J'ai juste essayé les deux, la suppression du profil en Photoshop ainsi que la commutation d'un profil avec un de complètement différent de la tonalité des couleurs. Sur l'écran ils ont l'air un lot différent. Jusqu'à ce que je les télécharger. Il ne semble pas à la matière, tous sont atténués comme la capture d'écran dans la question.
  • afin de changer d'espace de couleurs sRGB pour ne pas l'aider? Avez-vous essayez de l'enregistrer entièrement sans profil (à l'aide de la case à cocher dans le dialogue "Enregistrer sous") je n'ai pas Photoshop à portée de main, ou je vais l'essayer moi-même.
  • L'image sur votre site regarde de plus près de l'original que sur Flickr.
  • pas pour moi! Le Flickr et de l'image d'origine, l'air presque identique sur mon système, l'image GD diffère notamment
  • Pekka, les utilisateurs de regarder les photos dans les navigateurs, pas de Photoshop, donc il pourrait être intéressant pour vous de voir, comment regarde dans mon navigateur (Opéra): img841.imageshack.us/img841/6217/compareb.png
  • c'est une observation intéressante. Je dirais que tout ce que vous utilisez pour regarder l'original ne respecte pas le profil de couleur. Il sera en effet le résultat de la édulcoré les couleurs que vous voyez. Pourtant, il est étrange que vous voyez la pleine saturation de l'image sur Flickr. Qu'avez-vous utilisé pour afficher l'original?

InformationsquelleAutor Ferdy | 2011-04-24