Metody płatności Abuse

Optymalizacja obrazów w systemie Linux

16.06.2021, 19:33

Jeśli masz wystarczająco dużo obrazów na komputerze i zajmują one zbyt dużo miejsca, zdecydowanie możliwe jest zmniejszenie ich rozmiaru nawet bez utraty jakości. Może to być również bardzo przydatne podczas przesyłania obrazów do pamięci masowej w chmurze.

W tym artykule przyjrzymy się, jak przebiega optymalizacja obrazów w systemie Linux. Istnieje wiele narzędzi graficznych do rozwiązania tego zadania, ale w rzeczywistości wszystko jest prostsze. Następnie przyjrzymy się, jak kompresować obrazy za pomocą dwóch prostych, ale bardzo skutecznych narzędzi wiersza poleceń konsoli: jpegoptim to narzędzie do optymalizacji i kompresji obrazów JPEG bez utraty jakości; optipng to mały program, który pozwala zmniejszyć rozmiar obrazów PNG bez utraty jakości.

JPEG i PNG to najpopularniejsze formaty obrazów w Internecie, więc będziesz w stanie zoptymalizować prawie wszystkie obrazy

Optymalizacja obrazów JPEG

Istnieje narzędzie o nazwie jpegoptim, narzędzie wiersza poleceń, które może być używane do kompresji obrazów JPEG, JPG i JFIF bez utraty jakości. Narzędzie optymalizuje obrazy w oparciu o tablice Huffmana. Algorytm JPEG wykorzystuje kompresję taką, jaka jest, ale kompresja ta jest osiągana przy utracie jakości, a tutaj możemy zoptymalizować rozmiar bez zmiany obrazu.

INSTALACJA JPEGOPTIM

Aby zainstalować narzędzie w Ubuntu, Debianie i innych dystrybucjach, uruchom:

$ sudo apt install jpegoptim

W Fedorze, Red Hat, CentOS i innych dystrybucjach na nich opartych sprawy są nieco bardziej skomplikowane, będziesz musiał najpierw dodać repozytorium epel-release. Można to zrobić za pomocą polecenia takiego jak to:

$ sudo yum install epel-release

Lub:

$ sudo dnf install epel-release

Następnie możesz zainstalować jpegoptim z repozytorium, które właśnie dodałeś:

$ sudo yum install jpegoptim

Lub:

$ sudo dnf install jpegoptim

JAK UŻYWAĆ JPEGOPTIM

Przyjrzyjmy się, jak używać jpegoptim. Korzystanie z linuksowego narzędzia do kompresji obrazu jest bardzo proste. Wszystko, co musisz zrobić, to uruchomić program i przekazać mu nazwę pliku. Tak wygląda składnia:

$ jpegoptim optiona file_name.jpeg

Przyjrzyjmy się opcjom narzędzia:

  • -d - określenie folderu, w którym mają być zapisywane gotowe obrazy;
  • -f - wymuszona optymalizacja;
  • -m - wskaźnik jakości, anuluje bezstratną kompresję i ustawia poziom jakości od 0 do 100, im więcej tym lepiej;
  • -n - nie wykonuje rzeczywistej optymalizacji, tylko pokazuje wynik;
  • -S - ustawia rozmiar gotowego obrazu, może być określony w procentach lub kilobajtach;
  • -o - zastępuje plik źródłowy;
  • -p - zapisuje znaczniki czasu;
  • -P - zapisywanie praw do pliku.

Zobaczmy, jak zoptymalizować obrazy w systemie Linux za pomocą jpegoptim. Najpierw przyjrzyjmy się oryginalnemu rozmiarowi:

$ du image.jpg

Optymalizacja obrazów w systemie Linux

Następnie wykonujemy najprostszą optymalizację:

$ jpegoptim image.jpg

Optymalizacja obrazów w systemie Linux

Następnie ponownie sprawdzamy rozmiar:

$ du image.jpg

Optymalizacja obrazów w systemie Linux

Jak widać, kompresja jpg zadziałała, a otwierając obraz w dowolnym programie graficznym nie będzie różnicy ani pogorszenia jakości, oryginał i gotowy obraz będą identyczne. Po lewej stronie znajduje się zoptymalizowany obraz, po prawej oryginał:

Optymalizacja obrazów w systemie Linux

Jeśli chcesz, możesz skompresować obraz do określonego rozmiaru, ale wtedy nie będzie on bezstratny:

$ jpegoptim --size=250k image.jpeg

Obraz zostanie skompresowany, ale jego jakość wyraźnie się pogorszy. Jeśli istnieje wiele obrazów, można bardzo łatwo użyć kompresji wsadowej, wystarczy przejść do folderu z obrazami, a następnie uruchomić polecenie kompresji, określając na przykład maskę zamiast pliku:

$ cd images/

jpegoptim *.jpg

Optymalizacja obrazów w systemie Linux

Można także wylistować więcej niż jeden obraz naraz:

$ jpegoptim image1.jpg image2.jpg

Aby zoptymalizować wszystkie obrazy w określonym folderze, można użyć polecenia xargs wraz z poleceniem find. Na przykład skompresuj wszystkie obrazy w bieżącym folderze za pomocą polecenia move do folderu ~/compressed:

$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p

To wszystko, teraz wiesz jak skompresować obrazy jpg w Linuksie. Następnie porozmawiamy o tym, jak skompresować png. To również jest bardzo proste.

OPTYMALIZACJA OBRAZÓW PNG W LINUXIE

PNG lub Portable Network Graphics to format obrazu bitmapowego zaprojektowany w celu zastąpienia niedoskonałego formatu GIF pod względem kompresji i odwzorowania kolorów. Rozmiar obrazów PNG może się znacznie różnić w zależności od kilku czynników, takich jak głębia kolorów, przeplot, filtr przed kompresją, zastosowany algorytm kompresji itp.

OptiPNG to narzędzie konsolowe, które umożliwia optymalizację obrazów PNG. Mianowicie kompresuje rozmiar, odzyskuje metadane, sprawdza integralność itp. Dzięki OptiPNG można kompresować pliki bez utraty jakości, podobnie jak w przypadku formatu Jpeg.

INSTALACJA OPTIPNG

Jeśli korzystasz z Ubuntu, program znajduje się w oficjalnych repozytoriach i możesz go bardzo łatwo zainstalować. Aby zainstalować optipng w Debianie, Ubuntu i pochodnych wpisz:

$ sudo apt install optipng

W Red Hat, CentOS lub Fedora robi się to dokładnie tak samo, tylko używa się innego menedżera pakietów:

$ sudo yum install optipng

Lub:

$ sudo dnf install optipng

IMAGE COMPRESSION WITH OPTIPNG

Składnia narzędzia jest bardzo prosta. Można go używać w dokładnie taki sam sposób jak jpegoptim:

$ optipng ioptions file_name.png

Przyjrzyjmy się opcjom narzędzia:

  • -backup - zapisywanie kopii zmodyfikowanych plików;
  • -dir - folder do zapisu plików;
  • -force - wymuś zapis pliku wychodzącego;
  • -out - zapisz plik wychodzący do określonego pliku;
  • -simulate - nie wykonuje żadnych działań, a jedynie pokazuje wynik;
  • -o - ustawia poziom kompresji od 0 do 7.

Spróbujmy teraz zoptymalizować png w linuxie. Najpierw sprawdźmy rozmiar pliku:

$ df -h image.png

Optymalizacja obrazów w systemie Linux

Aby wykonać kompresję obrazu, użyj następującego polecenia:

$ optipng image.png

Następnie ponownie spójrzmy na rozmiar, w tym przykładzie różnice nie są widoczne, ponieważ obraz jest bardzo mały, ale przy większym rozmiarze będą one znaczące:

Tutaj również kompresja obrazów png linux jest bezstratna, co oznacza, że otrzymasz dokładnie ten sam obraz, tylko mniejszy. Można również określić poziom kompresji, nie ma on wpływu na jakość obrazu, ale bezpośrednio wpływa na czas działania programu. Wartość może wynosić od 0 do 7, a im więcej, tym silniejsza kompresja i dłuższe przetwarzanie:

$ optipng -o 7 impge.png

Do wsadowego przetwarzania obrazów można wykorzystać tę samą zasadę, co przy pracy z jpeg:

$ cd images/

$ optipng *.png

Teraz już wiesz jak przebiega optymalizacja obrazu w systemie linux.