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.