Czy znasz jakieś narzędzia (najlepiej wiersz poleceń) do automatycznej i bezstratnej optymalizacji plików JPEG, które mógłbym zintegrować z naszym środowiskiem kompilacji? W przypadku plików PNG używam obecnie PNGOUT i generalnie oszczędza około 40% przepustowości / rozmiaru obrazu.
Przynajmniej chciałbym mieć narzędzie, które potrafi usunąć metadane z plików JPG - zauważyłem dziwny przypadek, w którym próbowałem zrobić miniaturę ze zdjęcia i nie mogłem uzyskać mniej niż 34 kB. Po dokładniejszym zbadaniu stwierdziłem, że dane EXIF nadal były częścią obrazu, a miniatura miała 3 kB po usunięciu metadanych.
A poza tym - czy można bezstratnie dalej optymalizować pliki JPG? Optymalizator PNG próbuje różnych strategii kompresji, losowej inicjalizacji kodowania Huffmanna itp.
Zdaję sobie sprawę, że większość oszczędności pochodzi z parametru jakości JPEG i że jest to raczej subiektywna miara. Szukam tylko narzędzia, które można uruchomić jako krok kompilacji i które bezstratnie wyciska kilka bajtów z obrazów.
źródło
Odpowiedzi:
Używam libjpeg do operacji bezstratnych. Zawiera narzędzie wiersza poleceń jpegtran, które może zrobić wszystko, co chcesz. Dzięki opcji wiersza poleceń
-copy none
wszystkie metadane są usuwane i-optimize
dokonuje bezstratnej optymalizacji kompresji Huffmanna. Możesz także konwertować obrazy do trybu progresywnego-progressive
, ale może to powodować problemy ze zgodnością (czy ktoś wie o tym więcej?)źródło
Napisałem GUI dla wszystkich narzędzi do optymalizacji obrazu, jakie mogłem znaleźć , w tym MozJPEG i
jpegoptim
które optymalizują tabele Huffmana, skanowanie progresywne i (opcjonalnie) usuwają niewidoczne metadane.Jeśli nie masz Maca, mam również podstawowy interfejs internetowy, który działa na każdej platformie.
źródło
[TYLKO WINDOWS]
RIOT (Radical Image Optimization Tool) To najlepsze narzędzie do optymalizacji obrazu, jakie znalazłem!
http://luci.criosweb.ro/riot/
Możesz łatwo uzyskać obraz o wielkości 10 MB do 800 KB poprzez podpróbkowanie. Obsługuje formaty PNG, GIF i JPEG. Integruje się nawet z menu kontekstowymi, dzięki czemu możesz bezpośrednio wysyłać zdjęcia. Umożliwia obracanie, zmianę rozmiaru, kompresję do określonych KB i nie tylko. Ma również wtyczki do GIMP i IrfanView i innych rzeczy.
Dostępna jest również biblioteka DLL, jeśli chcesz ją włączyć do własnych programów lub skryptu Java / programu C ++.
Inną alternatywą jest http://pnggauntlet.com/ PNGGAUNTLET trwa wieczność, ale robi całkiem niezłą robotę.
[TYLKO WINDOWS]
źródło
Nowa usługa o nazwie JPEGmini daje niesamowite rezultaty.
Szkoda, że jest tylko online.Edycja : jest teraz dostępna dla systemów Windows i Macźródło
Wypróbowałem szereg sugestii powyżej - osobiście byłem po bezstratnej kompresji.
Mój przykładowy obraz miał oryginalny rozmiar 67 737 bajtów.
Korzystając z kraken.io, spadł do 64 718 Używając jpegtran, spadł do 64 718 Używając yahoo smush-it, spadł do 61 746 Używając imagemagick (-strip), spadł do 65 312
Opcja smush.py wygląda obiecująco, ale instalacja była dla mnie zbyt skomplikowana, aby wykonać ją szybko
jpegrescan też wygląda obiecująco, ale wygląda na to, że jest to unix i używam okien
jpegmini NIE jest bezstratne, ale nie potrafię odróżnić (do 22172)
Aplikacja jpegstripper Altrasoft cokołu nie działa w moim systemie Windows 7
jpegoptim to nie okna - nie jest dla mnie dobre
Riot (utrzymując jakość na 100%) obniżył to do 63416, a przy podpróbkowaniu barwy ustawionym na wysokim poziomie, spadło do 61 912 - nie wiem, czy to jest bezstratne, czy nie, i myślę, że wygląda jaśniej niż oryginał .
Więc mój werdykt jest bzdurny, jeśli musi być bezstratny
źródło
Spróbowałbym Imagemagick. Ma mnóstwo opcji wiersza poleceń, jest bezpłatny i ma ładną licencję. http://www.imagemagick.org
Wydaje się, że istnieje opcja o nazwie Strip, która może ci pomóc: http://www.imagemagick.org/script/command-line-options.php#strip
źródło
ImageOptim jest naprawdę zgrabny. Opcja wiersza poleceń opublikowana przez autora wypełni GUI i pokaże postęp. Użyłem jpegtran do optymalizacji i konwersji na progresywny, a następnie ImageOptim do dalszej progresywnej optymalizacji i do innych typów plików.
Ponowne użycie kodu skryptu również można znaleźć na tym forum (wszystkie pliki zastąpione na miejscu):
jpegtran
ImageOptim
źródło
Na wypadek, gdyby ktoś szukał, napisałem wersję offline Yahoo's Smush.it. Bezstratnie zoptymalizuje png, jpg i gify (animowane i statyczne):
http://github.com/thebeansgroup/smush.py
źródło
Możesz użyć jpegoptim, który domyślnie bezstratnie optymalizuje pliki jpeg.
--strip-all
Opcja usuwa wszystkie dodatkowo wbudowany info. Za pomocą--max
przełącznika można również określić tryb stratny, co jest przydatne, gdy mamy zapisane obrazy z ustawieniem bardzo wysokiej jakości, co nie jest konieczne np. zawartość sieci.Otrzymujesz podobną optymalizację jak w przypadku jpegtran (patrz odpowiedź OutOfMemory), ale jpegoptim nie może zapisywać do progresywnych jpegów.
źródło
Napisałem narzędzie wiersza poleceń o nazwie „picopt” (podobne do ImageOptim), które wykorzystuje zewnętrzne programy do optymalizacji plików JPEG, PNG, GIFS, animowanych GIFS, a nawet zawartości archiwum komiksów (CBR / CBZ).
Jest to odpowiednie do użytku z homebrew w systemach OS X lub Linux, w których zainstalowałeś narzędzia takie jak jpegrescan, jpegtran, optipng, gifsicle itp.
https://github.com/ajslater/picopt
źródło
Ja też poleciłbym ImageMagick . Posiada opcję wiersza poleceń do usuwania metadanych EXIF
Istnieje wiele innych narzędzi, które robią to samo.
Jeśli chodzi o rekompresję plików JPEG, nie rób tego. Pliki JPEG są stratne na początku, więc każda forma rekompresji może tylko pogorszyć jakość obrazu. Jeśli jednak masz bezstratnie zakodowane obrazy, niektóre kodery działają lepiej niż inne. Zauważyłem, że pliki JPEG wykonane w Photoshopie konsekwentnie wyglądają lepiej niż po zakodowaniu w ImageMagick (pomimo tego samego rozmiaru pliku) ze skomplikowanych powodów . Co więcej (i to jest dla ciebie istotne), wiem, że przynajmniej Photoshop może zapisywać pliki JPEG jako zoptymalizowane, co oznacza, że tracą kompatybilność z niektórymi rzeczami, o których prawdopodobnie nie dbasz, aby zaoszczędzić kilka KB. Upewnij się również, że nie masz osadzonych żadnych profili kolorów i być może uda Ci się zapisać kolejne kilka KB.
źródło
Poleciłbym użycie http://kraken.io Jest to ultraszybka aplikacja internetowa, która zoptymalizuje pliki PNG i JPEG znacznie lepiej niż smush.it.
źródło
Polecam użyć JpegOptim, jest darmowy i naprawdę fajny, możesz określić jakość, żądany rozmiar ... I łatwy w użyciu w linii poleceń.
JpegOptim
źródło
Mogę polecić to dla prawie przejrzystości:
Wykorzystuje ImageMagick „s
convert
ijpeg-recompress
z JPEG archiwum .Oba są typu open source i działają w systemach Windows, Mac i Linux. Możesz dostosować powyższe opcje dla różnych oczekiwań dotyczących jakości.
źródło