ImageMagick - zmniejszanie rozmiarów plików

ImageMagick - zmniejszanie rozmiarów plików

Piękny i duży obraz jest prawie wielki; Zwykle towarzyszy mu ogromna jakość. Jest jednak wiele razy, kiedy nie możesz sobie pozwolić na zdjęcia, które są zbyt duże. Czasami wszystko, czego chcesz. W takich przypadkach wszystkie życzenia programisty są sposobem na znalezienie środkowego gruntu między jakością a rozmiarem. Teoretycznie, jeśli całkowicie zrezygnujesz z jakości, rozmiar pliku nie powinien stanowić problemu, ale prawdziwą ofertą jest znalezienie kompromisu między jakością a rozmiarem pliku. W tym samouczku będziemy omawiać sposoby zmniejszenia rozmiaru plików zdjęć za pomocą ImageMagick (bez uszczerbku dla jakości).

Instalowanie ImageMagick

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

sudo apt-get instal instal ImageMagick

Przełącznik jakości

Pierwszym i najłatwiejszym sposobem na zmniejszenie rozmiaru zdjęcia/zdjęcia/wideo jest zmniejszenie jakości zdjęcia. Przełącznik jakości reprezentuje poziom kompresji JPEG/Miff/PNG. W przypadku JPEG i MPEG jakość 1 reprezentuje najwyższy poziom kompresji i najniższą jakość obrazu, a 100 reprezentuje najmniejszy poziom kompresji i najlepszą jakość.

Spójrzmy więc na przykład; Zdjęcie, które zrobiłem z drzewa, to 4624 × 3468 pod względem rozdzielczości i 5.70226 MIB. To jest oryginalny obraz, JPEG, który jest konkretny.


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

Konwertuj Tree_4624x3468.JPG -Quality 75 Tree_4624x3468_quality75.jpg
Konwertuj Tree_4624x3468.JPG -Quality 25 Tree_4624x3468_quality25.jpg



Zmniejszyłem jakość do 75 dla jednego zdjęcia i 25 dla drugiego. Oryginalny obraz miał 5.70226 MIB, ale obraz, który był jakość 75, stał się 2.74664 MIB, podczas gdy jakość 25 stała się 1358250 (1.295 MIB). Tutaj osobiście wybrałbym 75% jakości.

Teraz, ponieważ dbamy również o rzeczywistą jakość zdjęcia, pozwól, że pokażę ci zdjęcia:


Tree_4624x3468_quality75.jpg


Tree_4624x3468_quality25.jpg

Jak widać, jakość nie miała zbyt wiele, ale rozmiar pliku jest mniejszy.

Teraz próbowałem zrobić to samo z PNG i to właśnie mam:


Tak więc z 23501600b (22.413 MIB) do 22.2854 MIB. W przypadku JPEG wyszedł z 5.70226 MIB do 1.295 MIB. W przypadku formatów nietrwałych, takich jak PNG, przełącznik jakości jest o wiele trudniejszy.

Zmiany zdjęć

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

Konwertuj Tree_4624x3468.JPG -Size 50% x50% Tree_4624x3468_Resize50%.jpg



Jak wyraźnie widać, zdjęcie 4624 × 3468 miało 5.70226 MIB, podczas gdy ten, który miał 2312 × 1734, to tylko 1.56287 MIB.

Zdefiniuj przełącznik

Po przełączniku definicji następuje klucz, a jego wartość.

-Zdefiniuj klucz = wartość…

Lista możliwych kluczowych wartości można znaleźć na stronie https: // imagemagick.org/script/definiuje.php.

W przypadku PNG możesz użyć PNG: Wartość kompresji = wartość. Wartość może wynosić od 0 do 9. Wartość 0 zapewni ci najmniej kompresji, ale jest szybka, a wartość 9 zapewni najlepszą kompresję, ale jest najwolniejsza. Wszystko pomiędzy idzie też.

Na przykład:

Konwertuj Tree_4624x3468.png -definicja png: poziom kompresji = 9 Tree_4624x3468_compression9.png



W większości przypadków tego, czego chce programista, to ustawić maksymalny rozmiar zdjęcia. Załóżmy więc, że dla przypadków chcesz ustawić maksymalny rozmiar zdjęcia. Możesz użyć przełącznika definiowania, aby to zrobić.

-Zdefiniuj jpeg: zasięg = rozmiar

Konwertuj Tree_4624x3468.jpg -definicja jpeg: zasięg = 1 MB Tree_4624x3468_Extent1mb.jpg



Jak widać na powyższym zdjęciu, ustawia go na rozdzielczość 4624 × 3468 i rozmiar 0.897 MIB. Tak więc, jak żałowałeś, ImageMagick stworzył zdjęcie mniejsze niż maksymalny rozmiar 1 MB.

Przełącznik paska

Zdjęcia, które robimy z kamerami, są dostarczane z metadanami. Usunięcie metadanych może również oczyścić przestrzeń. W ImageMagick robimy to za pomocą przełącznika paska.

Konwertuj Tree_4624x3468.jpg -Strip Tree_strip.jpg



Tutaj, jak widać, oryginalne zdjęcie to 4624 × 3468 i 5.7 MIB. Ale obraz, który miał rozebrane metadane, to 4.65 MIB.

Przełącznik przestrzeni kolorów

Możesz także spróbować zmienić przestrzeń kolorów. W tym pierwszym przypadku odwrócę to szaro.

Konwertuj Tree_4624x3468.Jpg -Colorspace Grey Tree_gray.JPG -Quality 75



Jak widać, redukcja wielkości obrazu nie jest zbyt duża, ale istnieje redukcja - z 5.70226 MIB do 4.44997 MIB.

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

Konwertuj Tree_4624x3468.png -colorspace grey tree_graypng.png



W przypadku PNG, moje oryginalne zdjęcie, to 4624 × 3468, ma 22.42 MIB, ale kiedy go obracam, staje się 8.88 MIB.

Przełącznik kolorów

Możesz także zdecydować, aby zmienić liczbę użytych kolorów. W tym konkretnym przypadku użyję tylko 16 kolorów na PNG.

Konwertuj Tree_4624x3468.png -colors 16 Tree_4624x3468_16Colors.png



Oryginalny PNG miał 4624 × 3468 i 22.42 MIB. Jednak kiedy zmieniłem kolory na zaledwie 16 lat, obraz stał się 4.27 MIB wielkości. A zdjęcie wygląda tak:


Tree_4624x3468_16Colors.png

Za pomocą wielu przełączników

Teraz nie musisz używać jednego przełącznika na zdjęciu! Możesz połączyć tyle przełączników, ile chcesz na zdjęciu.

Więc w przykładzie 1 zrobię zdjęcie PNG drzewa. To oryginalne zdjęcie to 4624 × 3468 i 22.42 MIB rozmiaru, a ja będę używać wielu przełączników i zobaczyć, gdzie mnie to zaprowadzi.

Konwertuj Tree_4624x3468.png -Strip -resize 75% x75% -definicja png: poziom kompresji = 9 -Colorspace Gray Tree_4624x3468_reduceSize.png



Więc ten PNG, z oryginalnym rozmiarem 22.42 MIB, zamienione w zdjęcie 5.3 MIB. Wynikowy obraz to około 23% oryginalnego rozmiaru.

Następnie sprawdźmy JPG.

Konwertuj Tree_4624x3468.JPG -Quality 75 -Size 75% x75% -Strip -Colors 16 Tree_4624x3468_reduceSize.jpg



Więc tutaj, dla JPG, przeszliśmy od oryginalnego rozmiaru 5.7 MIB do około 2.2 MIB dla kolorowego obrazu.

Ale jeśli nie byłoby kolorowe:

Konwertuj Tree_4624x3468.JPG -Quality 75 -Size 75% x75% -Strip -Colorspace Gray Tree_4624x3468_reduceSize.jpg



Tutaj przeszliśmy od oryginalnego rozmiaru 5.7 MIB do 1.6 MIB dla szarego obrazu.

Gdybyś chciał, mógłbyś również ustalić maksymalny limit rozmiaru. Chodzi o to, że możesz zmniejszyć rozmiar, jeśli naprawdę nadajesz sobie umysł.

Wniosek

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