2011-08-13 13 views
10

Mam aparat fotograficzny, który produkuje zdjęcia o rozdzielczości 3008 x 2000 pikseli. Używam Image Magick do skalowania i zmiany rozmiaru zdjęć do umieszczenia na mojej stronie. Rozmiar zdjęć, których używam na stronie to 602 x 400. Używam tego polecenia, aby zmniejszyć rozmiar:Image Magick: Optymalizacja obrazu dla stron internetowych

convert DSC_0124.JPG -scale 20% -size 24% img1.jpg 

Powoduje to utworzenie obrazu o rozmiarze 602 x 400 pikseli. Ale rozmiar pliku zawsze będzie powyżej 250 KB. Więcej zdjęć na jednej stronie html oznacza, że ​​strona będzie cięższa i czas ładowania będzie dłuższy. Czy są jakieś cechy magii obrazu, które pomogą mi utrzymać możliwie najmniejszy rozmiar pliku, prawdopodobnie poniżej 100 KB. Ale rozmiar obrazu powinien być taki sam, czyli 602 x 400 pikseli. Osiągnąłem podobną optymalizację dzięki narzędziu SEAMonster dla MS Windows. Ponieważ nie ma alternatywy dla wiersza poleceń, nie byłoby to zbyt pomocne, gdyby były konwertowane setki obrazów.

Odpowiedz

23

użyć polecenia jako Delan zaproponował dodatkową „-strip” flagę, aby usunąć dane EXIF, to zmniejszyliśmy wielkość niektórych z moich obrazów drastycznie. Oto skrypt bash dla platform uniksowych, ale możesz użyć drugiej części tylko dla pojedynczych obrazów.

for X in *.jpg; do convert "$X" -resize 602x400 -strip -quality 86 "$X"; done 

Spowoduje to konwersję wszystkich obrazów w katalogu.

+3

Warning: 'convert' korzystania z tego samego wejścia i wyjścia nazwa pliku może być niebezpieczną operacją. Napisz do tymczasowej nazwy pliku i warunkowo 'mv' przy zastępowaniu oryginału lub po prostu użyj mogrify (część pakietu ImageMagick). Strona podręcznika dla 'mogrify (1)' stwierdza "Mogrify nadpisuje oryginalny plik obrazu, podczas gdy convert (1) zapisuje do innego pliku obrazu." –

6

użytkowania -quality aby ustawić poziom kompresji:

convert DSC_0124.JPG -scale 20% -size 24% -quality [0..100] img1.jpg 
3

Możesz określić maksymalny rozmiar obrazu wyjściowego w 100KB tak:

convert DSC_0124.JPG -resize 602x400! -strip -define jpeg:extent=100KB img1.jpg 
+2

Uważaj, "!" flaga, aby zmienić rozmiar ignoruje współczynnik proporcji, a '!' może być specjalnym znakiem powłoki, który zwykle musi być zmieniony. –

Powiązane problemy