Mam 5000 zdjęć, które muszę skompresować (aby wyświetlić na mojej stronie).
Jestem nowy w Ubuntu. Więc co mam zrobić?
Mam 5000 zdjęć, które muszę skompresować (aby wyświetlić na mojej stronie).
Jestem nowy w Ubuntu. Więc co mam zrobić?
Odpowiedzi:
Słowo „kompresja” wydaje się być źle interpretowane w tym pytaniu, ale wciąż jest poprawne w zależności od kontekstu, w którym chcesz to zobaczyć.
Spójrzmy prawdzie w oczy, że projektanci stron internetowych, programiści i / lub mistrzowie stron internetowych muszą „skompresować” nasze pliki obrazów, aby były wystarczająco „lekkie”, aby można je było szybko przesłać do naszego hostingu, jeśli pracujemy bezpośrednio na prawdziwym środowisku produkcyjnym. Co nie będzie miało wpływu, jeśli będziemy pracować w lokalnym środowisku produkcyjnym testującym.
Wiele odpowiedzi wydaje się odnosić do innych rzeczy, głównie spowodowanych - prawdopodobnie - nie spotkały się z taką scenerią. Dlatego zaczynam to wyjaśniać.
Więc. Rozumiemy, co należy rozwiązać w odpowiedzi:
Najpierw zrozummy, jaki powinien być „lekki obraz”.
Zdjęcia w wysokiej rozdzielczości o rozdzielczości ponad 1024px mogą mieć duży rozmiar pliku. Podaję przykład na tym zrzucie ekranu:
W oknie właściwości pliku możemy zobaczyć, że jest to plik 9,5 MB, który bardzo opóźni przesłanie i opóźni w celu renderowania na ekranie po opublikowaniu na stronie internetowej.
Niemniej jednak rozmiar obrazu i rozdzielczość siatki są naprawdę przydatne do drukowania w wysokiej rozdzielczości. To inna sceneria, której nie wyjaśnię w tym wyjaśnieniu.
Więc jak mogę użyć tego obrazu na stronie internetowej, nie czekając lat, aby przesłać i czekać jeszcze kilka lat, aby pokazać go na mojej stronie?
Kiedy mówimy o „kompresji”, musimy wyraźnie zmienić jej jakość, aby była użyteczna w przypadku, w którym mamy do czynienia.
Więc upuśćmy następny w terminalu:
convert seminario-tabloide.png test.jpg
Spowoduje to konwersję formatu PNG wysokiej rozdzielczości do formatu „skompresowanego” JPG, który sam w sobie jest mniejszym plikiem! Idzie z 9,5 MB do 2,4 MB.
Ale 2,4 MB to jeszcze duży rozmiar pliku. Zagrajmy teraz z innymi poleceniami konwersji ImageMagick , aby utworzyć mniejsze rozmiary plików:
convert test.jpg -quality 50% test-50p.jpg
To właśnie musimy zrobić, aby „skompresować” obraz. Spowoduje to obniżenie jakości obrazu o 50% i zapewni rozmiar pliku 938,4 KB <=== (Uwaga: KILOBYTES, nawet megabajt).
Możemy pójść dalej i stworzyć mniejszy rozmiar pliku, dostosowując wartość procentową w tym samym poleceniu za pomocą:
convert test.jpg -quality 30% test-30p.jpg
Pamiętaj, że w tym przykładzie obniżamy jakość pliku, a nie wymiary obrazu. Co spowoduje skompresowanie pliku, na który nie ma to wpływu wizualnego podczas renderowania na ekranie, ale zobaczysz artefakty podczas drukowania na dużym formacie papieru (większym niż litera).
Teraz. Możemy zrobić coś innego. Rzeczywiście kilka rzeczy: możemy najpierw zmienić rozmiar obrazów i zastosować kompresję, co spowoduje mniejszy rozmiar pliku niż oryginał i zapewni użyteczny obraz do renderowania na ekranie, nie tak dobry do drukowania, ale wydaje się, że chcesz wyświetlić go na ekranie, a nie na drukowanym banerze, prawda?
Zróbmy to:
convert seminario-tabloide.png -resize 1024x test-1024x.jpg
W tej instrukcji prosimy o zmianę rozmiaru obrazu na 1024 piksele o dowolną liczbę pikseli, aby nie stracić współczynnika kształtu.
Teraz ... zgadnij co?
Rozmiar pliku został zmniejszony z 9,5 MB do ... (muzyka z congas, proszę) 433,7 KILOBYTES
Jeśli chcemy maksymalnie skompresować taki maksymalnie skompresowany plik, napotkamy trochę danych ogólnych wstawionych do pliku, co spowoduje większy rozmiar pliku. Więc nie zasugeruję, żebyś spróbował, ale jeśli oczekujesz ode mnie przykładu, ok ... Proszę bardzo!
convert test-1024x.jpg -quality 50% test-1024x-50p.jpg
I przeszliśmy z 433,7 KB do 176,2 KB w jednym poleceniu. Ten przykład był udany, nie należy jednak spodziewać się, że jakiekolwiek ćwiczenia spowodują zmniejszenie rozmiaru pliku. Ale możesz się dobrze bawić, wykonując tego rodzaju ćwiczenia.
O! Ale prawie zapomniałem o jednej potrzebie: z łatwością zastosowałem ten proces do wielu zdjęć.
W tym celu możemy to zrobić za pomocą dwóch procesów.
Jest to szybsze i łatwiejsze. Powiedzmy więc terminalowi, że musimy uruchomić tę samą instrukcję we wszystkich plikach w katalogu, po czym wyjaśnię inną instrukcję.
Konwertuj wszystko na 1024px (możesz użyć dowolnej ilości pikseli)
for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;
W tym miejscu prosimy polecenie uruchomienia tej samej instrukcji dla wszystkich plików w katalogu, zastosowania transformacji i upuszczenia kopii o innej nazwie, aby ułatwić wybór.
Zmniejsz jakość o wartość procentową (użyj dowolnego procentu, jaki chcesz) do wszystkich zdjęć w katalogu:
for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;
W tym miejscu prosimy o zmniejszenie jakości obrazów w celu zmniejszenia ich rozmiaru pliku.
Możesz grać tymi poleceniami i zobaczyć swoje wyniki. Po kilku godzinach zabawy będziesz ekspertem.
20 kwietnia 2015 r. Stanąłem w obliczu takiej sytuacji, jak pierwotne pytanie, więc musiałem przeprowadzić badania i poprosić o pomoc w zadaniu. Dlatego teraz dużo o tym wiem. Nie sądzę, że urodziłem się z tą wiedzą, człowieku.
Jeśli nie jesteś przyzwyczajony do terminali i / lub chcesz korzystać z GUI, aby po prostu wybrać grupy plików i zastosować transformacje, możesz utworzyć własny skrypt działań Nautilus, aby po prostu kliknąć grupę plików prawym przyciskiem myszy i wybrać opcja z menu kontekstowego.
Aby uzyskać instrukcje, jak to zrobić, przeczytaj pytanie, odpowiedź i komentarz tutaj: Jak przetwarzać wsadowo obrazy JPG, aby zmienić jego jakość za pomocą Nautilus-Actions?
Powodzenia!
convert
Umiejętności wiersza poleceń ImageMagick są świetne.
convert photo.jpg -quality 70% photo_compressed.jpg
formatu polecenia i działało świetnie! Nawet ustawienie kompresji tylko na 70% oryginalnej jakości zmniejszyło rozmiar zdjęcia do ~ 37% oryginału, ponieważ efekt jest powiększony poprzez bycie na osi x i y.
mogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
Jeśli chodzi o obrazy JPEG, de facto kompresja nie jest możliwa. Ponieważ jpeg jest z definicji skompresowanym formatem pliku (wszystkie szumy i niepotrzebne piksele są już usunięte). Możesz je dobrze spakować, ale całkowity rozmiar pozostanie mniej więcej taki sam. Jedynym zaawansowanym algorytmem kompresji, jaki znam dla JPEG, jest zipx. Ale zipx jest zastrzeżony przez Winzip i zapewnia maks. rozmiar zmniejszony o 30% (w trybie archiwum zipx).
Aby wyświetlać obrazy w Internecie, najpierw powinieneś zmienić ich rozmiar (poniżej 1 MB na każdy) i opcjonalnie przekonwertować je na format pliku png. PNG (= przenośna grafika sieciowa) jest specjalnie zoptymalizowany pod kątem szybszego przesyłania danych i szybszego wyświetlania. Zaawansowani użytkownicy mogą nawet konwertować te obrazy do formatu webp (format Google do zdjęć, algorytm najszybszego ładowania).
Możesz grupowo konwertować zdjęcia za pomocą XnConvert, a następnie wsadowo zmieniać rozmiar zdjęć za pomocą XnView. Pobierz pakiet deb stąd: http://www.xnview.com/de/xnviewmp/#downloads , a następnie kliknij go prawym przyciskiem myszy i otwórz za pomocą Gnome Software.
Jeśli nie zależy Ci na szybkości ładowania sieci, ale zależy Ci na jakości, powinieneś pozostawić swoje zdjęcia nietknięte i stworzyć dla nich bibliotekę cyfrową. Może prześlij je na publiczny serwer (Yahoo, Google itp.).