ImageMagick – Zmniejszanie rozmiarów plików

Imagemagick Zmniejszanie Rozmiarow Plikow



Piękny i duży obraz jest prawie świetny; zwykle towarzyszy temu niesamowita jakość. Jednak jest wiele, wiele razy, kiedy nie możesz sobie pozwolić na zdjęcia, które są zbyt duże. Czasami wszystko, czego potrzebujesz, to zdjęcie o przyzwoitym rozmiarze, a nawet takie, które jest mniejsze niż określony rozmiar. W takich przypadkach programista marzy jedynie o znalezieniu złotego środka między jakością a rozmiarem. Teoretycznie, jeśli całkowicie zrezygnujesz z jakości, rozmiar pliku nie powinien stanowić problemu, ale prawdziwa sprawa polega na znalezieniu kompromisu między jakością a rozmiarem pliku. W tym samouczku omówimy sposoby zmniejszenia rozmiaru pliku zdjęć za pomocą ImageMagick (bez zbytniego obniżania jakości).

Instalacja ImageMagicka

Będziemy do tego potrzebować ImageMagick, więc najpierw zainstalujmy go:







Sudo apt-get install magia obrazu



Przełącznik jakości

Pierwszym i najłatwiejszym sposobem zmniejszenia rozmiaru zdjęcia/obrazu/filmu jest obniżenie jakości zdjęcia. Przełącznik jakości reprezentuje poziom kompresji JPEG/MIFF/PNG. W przypadku plików JPEG i MPEG jakość 1 oznacza najwyższy poziom kompresji i najniższą jakość obrazu, a wartość 100 oznacza najniższy poziom kompresji i najlepszą jakość.



Spójrzmy więc na przykład; zdjęcie drzewa, które zrobiłem, ma rozdzielczość 4624 × 3468 i zajmuje 5,70226 MB. To jest oryginalne zdjęcie, konkretnie JPEG.






Teraz chodzi o to, że chcemy zmniejszyć rozmiar obrazu. Spróbujmy więc ustawić przełącznik jakości na coś nieco innego i zobaczmy, co się stanie.

konwertuj tree_4624x3468.jpg -jakość 75 drzewo_4624x3468_jakość75.jpg
konwertuj tree_4624x3468.jpg -jakość 25 drzewo_4624x3468_jakość25.jpg



Zmniejszyłem jakość do 75 dla jednego zdjęcia i 25 dla drugiego. Oryginalny obraz miał 5,70226 MB, ale obraz o jakości 75 stał się 2,74664 MiB, podczas gdy obraz o jakości 25 stał się 1358250 (1,295 MiB). Tutaj osobiście wybrałbym jakość 75%.



A teraz, ponieważ zależy nam również na rzeczywistej jakości zdjęcia, pozwólcie, że pokażę wam zdjęcia:


drzewo_4624x3468_jakość75.jpg


drzewo_4624x3468_jakość25.jpg

Jak widać, jakość nie uległa znacznemu pogorszeniu, ale rozmiar pliku jest mniejszy.

Teraz próbowałem zrobić to samo z PNG i oto, co otrzymałem:


Tak więc poszło z 23501600B (22,413MiB) do 22,2854MiB. W przypadku pliku JPEG wzrosła z 5,70226 MiB do 1,295 MiB. W przypadku formatów bezstratnych, takich jak PNG, zmiana jakości jest znacznie trudniejsza.

Zmiana rozmiaru zdjęć

Zmiana rozmiaru zdjęć to inny sposób. Na przykład:

konwertuj tree_4624x3468.jpg -Zmień rozmiar pięćdziesiąt % x50 % tree_4624x3468_resize50 % jpg



Jak widać, obraz o wymiarach 4624×3468 miał rozmiar 5,70226 MB, a obraz o rozmiarze 2312×1734 to tylko 1,56287 MB.

Przełącznik definiowania

Po przełączniku definicji następuje klawisz i jego podana wartość.

- zdefiniuj klucz {=wartość}…

Listę możliwych wartości klucza można znaleźć pod adresem .

W przypadku PNG możesz użyć png:compression-level=value. Wartość może wynosić od 0 do 9. Wartość 0 zapewnia najmniejszą kompresję, ale jest szybka, a wartość 9 zapewnia najlepszą kompresję, ale jest najwolniejsza. Wszystko pomiędzy też pasuje.

Na przykład:

konwertuj tree_4624x3468.png -definiować png:poziom-kompresji= 9 tree_4624x3468_compression9.png



W większości przypadków programista chce ustawić maksymalny rozmiar zdjęcia. Załóżmy więc, że chcesz ustawić maksymalny rozmiar zdjęcia. W tym celu możesz użyć przełącznika definicji.

-define jpeg:extent={rozmiar}

przekonwertować drzewo_4624x3468.jpg -definiować JPEG: zakres =1MB tree_4624x3468_extent1MB.jpg



Jak widać na powyższym obrazku, ustawiono go na rozdzielczość 4624×3468 i rozmiar 0,897 MiB. Tak więc, zgodnie z twoją prośbą, ImageMagick stworzył zdjęcie, które jest mniejsze niż maksymalny rozmiar 1 MB.

Przełącznik paska

Zdjęcia, które robimy aparatami, zawierają metadane. Usunięcie metadanych może również zwolnić trochę miejsca. W ImageMagick robimy to za pomocą przełącznika paska.

konwertuj tree_4624x3468.jpg -rozebrać się pas_drzewa.jpg



Tutaj, jak widać, oryginalne zdjęcie ma wymiary 4624×3468 i 5,7 MB. Ale obraz, z którego usunięto metadane, ma rozmiar 4,65 MB.

Przełącznik przestrzeni kolorów

Możesz także spróbować zmienić przestrzeń kolorów. W tym pierwszym przypadku zmienię kolor na szary.

konwertuj tree_4624x3468.jpg -przestrzeń kolorów szare drzewo_szary.jpg -jakość 75



Jak widać redukcja rozmiaru obrazu nie jest zbyt duża, ale jest redukcja – z 5,70226MiB do 4,44997MiB.

Alternatywnie wypróbowałem również następujące czynności:

konwertuj tree_4624x3468.png -przestrzeń kolorów szary drzewo_szarypng.png



W przypadku pliku PNG moje oryginalne zdjęcie, czyli 4624×3468, ma rozmiar 22,42 MB, ale gdy zmienię kolor na szary, rozmiar wynosi 8,88 MB.

Przełącznik kolorów

Możesz także zdecydować się na zmianę liczby użytych kolorów. W tym konkretnym przypadku użyję tylko 16 kolorów w pliku PNG.

konwertuj tree_4624x3468.png -zabarwienie 16 drzewo_4624x3468_16kolory.png



Oryginalny plik PNG miał rozmiar 4624 × 3468 i 22,42 MiB. Jednak kiedy zmieniłem kolory na tylko 16, obraz osiągnął rozmiar 4,27 MB. A zdjęcie wygląda tak:


drzewo_4624x3468_16kolory.png

Korzystanie z wielu przełączników

Teraz nie musisz używać jednego przełącznika na zdjęciu! Możesz połączyć dowolną liczbę przełączników na obrazie.

Tak więc w przykładzie 1 zrobię zdjęcie drzewa w formacie PNG. To oryginalne zdjęcie ma rozmiar 4624 × 3468 i 22,42 MB. Zamierzam użyć wielu przełączników i zobaczyć, dokąd mnie to zaprowadzi.

konwertuj tree_4624x3468.png -rozebrać się -Zmień rozmiar 75 % x75 % -definiować png:poziom-kompresji= 9 -przestrzeń kolorów szary  tree_4624x3468_reducedsize.png



Tak więc ten plik PNG o oryginalnym rozmiarze 22,42 MB zamienił się w obraz o rozmiarze 5,3 MB. Wynikowy obraz ma około 23% oryginalnego rozmiaru.

Następnie sprawdźmy plik JPG.

konwertuj tree_4624x3468.jpg -jakość 75 -Zmień rozmiar 75 % x75 % -rozebrać się -zabarwienie 16 tree_4624x3468_reducedsize.jpg



Więc tutaj, dla JPG, przeszliśmy z oryginalnego rozmiaru 5,7 MB do około 2,2 MB dla kolorowego obrazu.

Ale gdyby nie był kolorowy:

konwertuj tree_4624x3468.jpg -jakość 75 -Zmień rozmiar 75 % x75 % -rozebrać się -przestrzeń kolorów szare drzewo_4624x3468_reducedsize.jpg



Tutaj przeszliśmy od oryginalnego rozmiaru 5,7 MB do 1,6 MB dla szarego obrazu.

Gdybyś chciał, mógłbyś również ustawić maksymalny limit rozmiaru. Chodzi o to, że możesz zmniejszyć rozmiar, jeśli naprawdę się na to zdecydujesz.

Wniosek

Pisząc kod do określonego celu, zwykle używamy również obrazów, a czasami po prostu nie możemy sobie pozwolić na obrazy, które są zbyt duże. W takich przypadkach głównym celem programisty jest znalezienie kompromisu pomiędzy wielkością obrazu a jakością obrazu. Nie chcemy używać zdjęć, które są zbyt niskiej jakości, ale nie stać nas też na duże zdjęcia. Potrzebujemy więc sposobów na zmniejszenie rozmiaru obrazu. ImageMagick oferuje różne sposoby zmniejszania rozmiaru obrazu w postaci różnych przełączników – jakość, zmiana rozmiaru, definiowanie itp. Możesz użyć jednego lub kilku z nich, aby dostosować rozmiar obrazu.