2011-08-17 4 views
1

Je travaille actuellement sur un projet qui implique une comparaison entre différentes bibliothèques de traitement d'image . L'une de ces bibliothèques est libGD. J'utilise le wrapper perl ainsi que le wrapper php.La sortie libGD perl et php wrapper diffère

Mon problème est maintenant que la même image d'entrée produit des images de sortie complètement différentes selon l'enveloppe utilisée. Si j'appelle la fonction libGD via l'enveloppe perl , l'image résultante est environ 40% plus grande que la sortie de l'encapsuleur php. Une image de différence réalisée avec imagemagick montre également que les deux images sont très différentes.

La paramétrisation des deux appels de fonction est absolument identique (qualité, résolution, géométrie). J'ai également vérifié s'il y a plus d'une version de libGD installée sur mon système, il n'y en a pas.

Les deux enveloppes ne devraient-elles pas produire la même sortie ou est-ce que je me trompe complètement?

+0

Uniquement si les deux enveloppes effectuent les mêmes appels de bibliothèque. Utilisez un programme comme 'strace' pour voir quelles sont les différences. – mob

Répondre

0

Les deux bibliothèques ont effectué exactement les mêmes appels de bibliothèque. Le problème était que le wrapper perl devait produire par défaut des images truecolor, il écrit aussi truecolor comme type dans l'en-tête de l'image. (imagemagicks identifier les sorties truecolor comme type). Mais en réalité ce n'est pas un truecolor mais une image de la palette. Lorsqu'elles sont réglées manuellement sur truecolor, les images sont identiques à 100%.

Merci pour votre temps.