Szukam najszybszego konwertera obrazów wiersza polecenia dla systemu Linux, który może odczytać obraz JPEG, przeskalować go maksymalnie do 1366 x 768 i napisać wysokiej jakości obraz JPEG 50. Coś takiego, ale znacznie szybsze niż ImageMagick:
$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set
Próbowałem również tego:
$ <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
Więc chciałbym mieć program, najlepiej napisany w C, który integruje djpeg, wyższą jakość wersji pnmscale i cjpeg.
Właśnie znalazłem swiggle (program C korzystający z libjpeg), wyłączyłem niektóre jego funkcje, których nie potrzebuję w kodzie źródłowym, i mam:
$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results
Czy masz inną sugestię? Myślę, że większość konwerterów obrazów używa libjpeg, więc ciężko byłoby uzyskać znacznie szybsze wyniki niż przełączanie.
Odpowiedzi:
Najszybszą biblioteką, z której korzystałem do tej pory, jest zdecydowanie EPEG . Może tworzyć kciuki tylko z plików JPG, ale tworzy je bardzo szybko:
Imagemagick:
EPEG:
Korzystałem z tej biblioteki, aby tworzyć kciuki do ogromnej liczby naprawdę dużych obrazów.
źródło
Rozwiązałem ten problem, pobierając swiggle (miniatura JPEG z wiersza poleceń + generator galerii obrazów HTML) i modyfikując źródło dla moich potrzeb. Zobacz pomiary prędkości w pytaniu (mniej niż 10% szybciej niż djpeg + pnmscale + cjpeg).
źródło