Jak kompresować obrazy jpg w systemie Linux

9

Wiem, że jest do tego „jpegoptim”. Ale nie zawsze zmniejsza obraz zgodnie z oczekiwaniami. Na przykład, jeśli wykonam

jpegoptim --max=50 *.jpg

na obrazie 550 KB rozmiar tak naprawdę się nie zmniejszy. Zastanawiam się więc, czy istnieją bardziej wydajne narzędzia do tego.

Dzięki

hnns
źródło

Odpowiedzi:

14

Możesz spróbować mogrify:

http://www.imagemagick.org/www/mogrify.html

Zobacz także konkretne przykłady kompresji obrazu:

/ubuntu/25356/decrease-filesize-when-resizing-with-mogrify

mogrify -quality 80 -resize 80 file.jpg

więc powinieneś skończyć z czymś takim

mogrify -quality 80 file.jpg

Test z mojej maszyny:

aaron@sandbox:~/img-test$ du -h splash.jpg 
188K    splash.jpg
aaron@sandbox:~/img-test$ mogrify -quality 10 splash.jpg
aaron@sandbox:~/img-test$ du -h splash.jpg 
16K splash.jpg

Przy 10% wygląda to okropnie, ale masz pomysł.

Możesz także użyć PIL Pythona:

/programming/4353019/in-pythons-pil-how-do-i-change-the-quality-of-an-image

z importu obrazu PIL

im = Image.open („C: \ Users \ Public \ Pictures \ Sample Pictures \ Jellyfish.jpg”) im.save („C: \ Users \ Public \ Pictures \ Sample Pictures \ Jellyfish_compressed.jpg”, jakość = 10)

Aaron Newton
źródło