Je recherche le convertisseur d'image en ligne de commande le plus rapide pour Linux qui peut lire une image JPEG, la réduire à 1366x768 au maximum et écrire une image JPEG de qualité 50. Quelque chose comme ça, mais beaucoup plus rapide que ImageMagick:
$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set
J'ai également essayé ceci:
$ <foo42.jpg djpeg | pnmscale -xysize 1366 768 | cjpeg -quality 50 >foo42.th.jpg
# takes 0m12.007s for my test image set, and has lower visual quality than ImageMagick
J'aimerais donc avoir un programme, de préférence écrit en C, qui intègre djpeg, une version de pnmscale de meilleure qualité et cjpeg.
Je viens de trouver swiggle (un programme C utilisant libjpeg), j'ai désactivé certaines de ses fonctionnalités dont je n'ai pas besoin dans le code source, et j'ai:
$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results
Avez-vous une autre suggestion? Je suppose que la plupart des convertisseurs d'images utilisent libjpeg, il serait donc difficile d'obtenir des résultats beaucoup plus rapides que swiggle.
Réponses:
La bibliothèque la plus rapide que j'ai utilisée jusqu'à présent est certainement EPEG . Il ne peut créer que des pouces à partir de fichiers JPG, mais il les crée très rapidement:
Imagemagick:
EPEG:
J'ai utilisé cette bibliothèque pour créer des vignettes pour une grande quantité d' images vraiment grandes.
la source
J'ai résolu ce problème en téléchargeant swiggle (une miniature JPEG en ligne de commande + un générateur de galerie d'images HTML) et en modifiant sa source selon mes besoins. Voir les mesures de vitesse dans la question (moins de 10% plus rapide que djpeg + pnmscale + cjpeg).
la source