J'ai un code Python qui doit faire juste quelques choses simples à photographier: récolter, redimensionner et recouvrir un filigrane. J'ai utilisé PIL, et les résultats de rééchantillonnage / redimensionnement sont terribles. J'ai utilisé ImageMagick, et l'interface et les commandes ont été conçues en emballant un chat dans une boîte, puis je le lançant à plusieurs reprises une série d'escaliers à un clavier. P>
Je recherche quelque chose qui n'est pas PIL ou ImageMagick que je peux utiliser avec Python pour faire des transformations d'image simples et de haute qualité. Pour cette affaire, il n'a même pas besoin d'avoir des liaisons Python si l'interface de ligne de commande est bonne. P>
OH, et il doit être relativement plate-forme agnostique, nos serveurs de production sont Linux, mais certains de nos Devs se développent sous Windows. Il ne peut pas nécessiter l'installation d'un groupe de code d'interface graphique idiote à utiliser comme une bibliothèque, non plus. P>
9 Réponses :
PIL peut faire un bon redimensionnement. Assurez-vous que votre image source est en mode RVB, pas de couleurs à la palette et essayez les différents choix d'algorithmes. P>
Je l'ai toujours utilisé sur des JPEG plaines. Image.open ('myfile.jpg'), puis image.Thumbnail ou image.Resize, suivi de l'image.save ... tout avec le réglage antialias pour la rédaction. Cela devrait être en mode RVB par défaut (JPEGS sont RVB) et avec le meilleur algorithme de descente, non? Si je manque quelque chose, j'aimerais savoir ce que j'ai mal ...
Sans voir le code source et les images source, il est difficile de dire ce qui se passe. Beaucoup de gens utilisent PIL pour ce type de travail et sont satisfaits des résultats. Quelque chose est différent de votre cas (avez-vous des yeux surtout d'aigle?), Mais nous n'avons pas encore compris ce que cela.
J'ai utilisé PIL, et les résultats de rééchantillonnage / redimensionnement sont terribles. P> blockQuote>
Ils ne devraient pas être, aussi longtemps que vous: p>
- Utilisez uniquement l'image.Antialias Filtrage pour les opérations d'inadaptation LI>
- Utilisez uniquement image.Bicubic Filtrage pour les opérations d'amortissement d'amortissement. LI>
- N'oubliez pas de convertir en mode couleur 'RVB' avant le redimensionnement si vous utilisez une image Paletted li>
- N'utilisez pas .Thumbnail (). C'est la merde li>
- Définissez le niveau
Qualité = code> à quelque chose approprié lors de l'enregistrement des JPEG (la valeur par défaut est assez faible) li> ol>
Vous savez, après quelques autres tests, les résultats sont i> mieux avec redimensionnement, par opposition à la vignette, même avec l'algorithme de l'image.Antialias. Si j'y pense plus tard, je posterai quelques échantillons de résultats de diverses opérations.
Voir Stackoverflow.com/Questions/ 1386400 / ... - il ne teste pas assez comme contre, mais il y a clairement quelque chose de mal avec quelle vignette () fait.
Je voulais juste renforcer le point 5. Il est facile à manquer et c'est la principale cause des problèmes que cette question se plaint à l'origine.
Avez-vous vérifié PYPI ? Une recherche superficielle montre des outils liés à l'image là-bas, j'ai également découvert Python-GD, aucun indice à quel point cela pourrait être utile. P>
Je n'ai jamais eu de problèmes avec PIL moi-même, mais une sorte de variété pourrait être intéressante. P>
GIMP a une interface de ligne de commande raisonnable, je pense. p>
Malheureusement, GIMP nécessite GTK +, qui est une bibliothèque assez idiote à installer sur un serveur sans tête.
Jetez un coup d'œil à certaines de ces bibliothèques d'imagerie: P>
hxxp: //pypi.python.org/pypi/collective.croppingImagefield/0.1beta p>
hxxp: //pypi.python.org/pypi/cprezesize/0.1.1 P>
hxxp: //pypi.python.org/pypi/image_resize/1.0 P>
La dernière fois que j'ai comparé, cette sortie de Downscaler est presque identique à celle de l'option "cubique" de Gimp: cf: http://www.mail-archive.com/image-sig@python.org/msg00248.html p> p>
Je ne suis pas sûr de savoir pourquoi l'image.Thumbnail obtient un tel flak. Dans la présente publication que je suis en train de s'expliquer, il fait un peu plus que de comprendre la taille souhaitée et redimensionnez l'image en place. Tant que vous utilisez le filtre de rééchantillonnage approprié et que vous convertissez en premier (indique Bobince), la vignette ne doit pas être différente de redimensionnement.
Voici la source réelle pour la méthode de la vignette: p>
J'ai utilisé PIL, et les résultats de rééchantillonnage / redimensionnement sont terribles. P> blockQuote>
Redimensionnement en PIL a été brisé à bien des égards et PIL n'est pas maintenu pendant une longue période. À partir de oreiller 2.7 La plupart des problèmes sont fixés le long de avec une amélioration spectaculaire des performances. Assurez-vous que vous utilisez dernier oreiller . P>
Vous serez regarder un moment. Pymagick est la seule chose qui existe autre chose que PIL.
Comment les gens trouvent-ils PIL acceptables? Toute opération de redimensionnement (même rédaction) produit des artefacts et des flancs, même avec le réglage de rééchantillonnage antialias. J'ai essayé de nombreuses heures pour faire produire des résultats que j'accepterais, mais comparé aux outils de bureau tels que Photoshop ou Gimp, le redimensionnement de PIL est pathétique.
J'utilise redimensionner avec des antialias pour générer des vignettes pour une application de génération de documents, et ils sont comparables à ce que Acrobat PDF Viewer fait