Pytanie:
Jak zmniejszyć rozmiar pliku bez utraty jakości lub rozdzielczości?
bran
2012-12-14 17:06:32 UTC
view on stackexchange narkive permalink

Mam ponad 2300 zdjęć, które chcę przenieść na telefon, ale przy ich oryginalnym rozmiarze zajmują dużo miejsca (6,44 GB). Chciałbym przyciąć bez utraty jakości lub rozdzielczości. Wiem, że można to zrobić pod Linuksem za pomocą czegoś takiego jak pgncrush. Obecnie mam dostęp do systemu Windows i wszystkie pliki są w formacie jpeg.

Jak to zrobić?

Czy kopie zdjęć z telefonu będą wyświetlane tylko na ekranie telefonu, czy chcesz je wydrukować / udostępnić z telefonu na inny wyświetlacz?
Tylko na ekranie telefonu.
Przychodzi tu na myśl termin „[TANSTAAFL] (http://en.wikipedia.org/wiki/TANSTAAFL)”. Możesz uruchomić wszystkie te narzędzia Linux w systemie Windows przy odrobinie pracy. Ale generalnie albo dadzą tylko niewielkie oszczędności, albo będą wymagać zmniejszenia rozdzielczości lub jakości obrazu.
@Bran W takim przypadku proponuję zmniejszenie rozdzielczości [zgodnie z sugestią woliveirajr] (http://photo.stackexchange.com/a/30492/101). Nie widzę powodu, aby mieć rozdzielczość obrazu większą niż rozdzielczość ekranu telefonu.
To nie kaczka, to łabędź!
Nie miałem wystarczającej liczby „punktów” lub czegoś, aby odpowiedzieć na własne pytanie. Spróbuję jeszcze raz. @SteveKemp tak, prawdopodobnie. :)
Zawsze powinieneś mieć wystarczającą reputację, aby odpowiedzieć na własne pytanie. Ta odpowiedź prawdopodobnie przyniesie Ci większą reputację.
Dwa razy opublikowałeś ten sam obraz. Nie widać różnicy, ponieważ pliki obrazów są całkowicie identyczne do ostatniego bitu. Jeśli opublikujesz rzeczywisty oryginalny i skompresowany obraz, możemy je porównać.
@Guffa Nie wysłałem dwa razy tego samego obrazu ... dlaczego miałbym to zrobić? Możesz pobrać obrazy oddzielnie na swój komputer i sprawdzić rozmiary. http://i.stack.imgur.com/Lz2Ii.jpg http://i.stack.imgur.com/VqHjK.jpg Alternatywnie możesz skompilować i zainstalować narzędzie, o którym wspomniałem w mojej odpowiedzi i wypróbować je samodzielnie.
Nie wiem, dlaczego dwa razy opublikowałeś to samo zdjęcie. Pobrałem obrazy i porównałem zawartość pliku i były one całkowicie identyczne. Pobrałem obrazy, do których teraz podałeś link, i są one również całkowicie identyczne.
W zależności od formatu oryginalnego * możesz * wybrać lepszy algorytm bezstratnej kompresji. Albo raczej nie.
Pamiętaj, że na przesyłanie do (tutaj Twojego ulubionego hosta obrazów) może mieć wpływ ponowna kompresja obrazu, co może sprawić, że porównania będą daremne.
Rozumiem, że flickr nie rekompresuje go ani nie konwertuje, ale inne strony, takie jak imgur, tak.
Dziesięć odpowiedzi:
Guffa
2012-12-14 19:24:29 UTC
view on stackexchange narkive permalink

Rozmiar pliku, jakość, rozdzielczość - wybierz dowolne dwa.

Jeśli masz obrazy w nieskompresowanym formacie, takim jak BMP, możesz je nieco zmniejszyć bez utraty jakości lub rozdzielczości, zapisując je w skompresowany format, który nie wykonuje stratnej kompresji, jak PNG-24.

Obrazy JPEG są już skompresowane, więc przy danej jakości i wyniku są już tak małe, jak to tylko możliwe. Tak więc, jeśli chcesz mieć mniejszy rozmiar pliku, musisz poświęcić jakość lub rozdzielczość.

Ponieważ zamierzasz wyświetlać obraz na telefonie, możesz poświęcić trochę jakości bez zauważenia różnica. Jeśli obrazy JPEG są zapisane z jakością 100, możesz spróbować wykonać kopię, używając na przykład jakości 80 i sprawdzić, czy jest to wystarczająco dobre dla Twoich potrzeb.

Jeśli rozdzielczość obrazów jest wyższa niż rozdzielczości ekranu w telefonie, możesz użyć tej dodatkowej rozdzielczości tylko w przypadku powiększenia obrazu. W takim przypadku zmniejszenie rozdzielczości ograniczyłoby tylko stopień powiększenia.

czasami spakowanie lub rarowanie ich może trochę bardziej ścisnąć pliki jpg.
@MichaelNielsen: To prawdopodobnie dlatego, że zawiera metadane, które nie są skompresowane, więc zapisanie obrazu bez metadanych spowodowałoby, że byłby jeszcze mniejszy.
byłoby naprawdę głupio usunąć metadane z własnej bazy danych.
@MichaelNielsen: Tak, ale nie rozumiesz. Metadane są powodem, dla którego w pliku znajdują się dane, które można skompresować.
Istnieją inne formaty poza JPG, które mogą przechowywać wydajniej niż JPG, więc konwertując na jeden z nich, można osiągnąć lepszą kompresję bez odczuwalnej utraty jakości. Więcej informacji w mojej odpowiedzi poniżej http://photo.stackexchange.com/a/79086/4272
woliveirajr
2012-12-14 17:42:33 UTC
view on stackexchange narkive permalink

Zacznijmy od pojęcia: kompresory są w stanie zmniejszyć rozmiar czegoś (na przykład pliku tekstowego), przetwarzając go i przedstawiając te same informacje przy użyciu mniejszej liczby symboli. W ten sposób Zip zmniejsza rozmiar pliku tekstowego. To jest bezstratna kompresja.

Obrazy i audio (a więc wideo) wykorzystują bardzo dużą ilość informacji: na przykład obraz o rozdzielczości 5 megapikseli w formacie, który niczego nie kompresuje (jak TIFF) zajęłoby 5 megabajtów x 3 kolory * RGB) = 15 MB miejsca.

Aby zmniejszyć rozmiar pliku, format JPEG powoduje utratę niektórych informacji z obrazu: jakości, kolorów itp. Dlatego możesz otworzyć plik JPEG w jakimś programie do edycji zdjęć (Photoshop, Gimp, itp.), a następnie zapisać go z niższą jakością: zużyje mniej informacji do przedstawienia obrazu, przy mniejszym rozmiarze pliku, ale straci część jakości. Jeśli Ty (lub jakakolwiek osoba) będziesz w stanie zauważyć niską jakość, jest to ważna kwestia przy wyborze „wymaganej kompresji”.

Więc: ogólnie rzecz biorąc, dla praktycznej celowo, stracisz dużo jakości, aby zmniejszyć rozmiar obrazu JPEG, ponieważ jest on już skompresowany.

Ale chcesz użyć tego w telefonie komórkowym, prawda?

Nie powiedziałeś, jaki masz telefon komórkowy. Załóżmy, że masz Samsung galaxy s3. Możesz zobaczyć jego specyfikację: rozdzielczość ekranu wynosi 1280x720 pikseli.

Więc kiedy oglądasz na nim obraz, nie ma znaczenia oryginalny rozmiar obrazu: będziesz mógł zobaczyć 1280x720 pikseli, ponieważ jest to maksymalna liczba pikseli, które komórka będzie w stanie pokazać.

Jeśli zrobisz wszystkie zdjęcia, zmienisz ich rozmiar na 1280x720 pikseli i otworzysz w telefonie, zobaczysz je w ten sam sposób zobaczy je w oryginalnej rozdzielczości. Utracisz „rozdzielczość” z oryginalnego obrazu, ale jest to coś, czego i tak nie byłbyś w stanie zobaczyć w telefonie ...

Jak to zrobić w systemie Windows : użyj dowolnego programu, który Ci się podoba, który jest w stanie edytować zdjęcia: Photoshop, Gimp, IrfanView ... ale skoro mówisz o robieniu tego w dużej ilości plików, prawdopodobnie myślisz o ImageMagicku lub podobnym programie, który może wykonać tę samą operację na dużej liczbie plików.

Edycja: aby zrobić to z Imagemagick:

1 - skopiuj wszystkie swoje zdjęcia do nowego folderu (np .: Temp1), aby uniknąć zgubienia oryginałów

2 - utwórz nowy folder, w którym Twoje zdjęcia zostaną zmienione (np .: Temp2)

3 - otwórz okno cmd , przejdź do katalogu, w którym znajdują się skopiowane zdjęcia (Temp1)

4 - wpisz:

mogrify -path full_path_to_Temp2 -resize 1280x720 * .jpg

To jest to, czego szukałem. Zgadłeś też, że mój telefon to S3. W tej chwili pobieram imagemagick. jakie byłoby polecenie zmiany rozmiaru obrazów wszystkich plików w jednym folderze do 1280x720?
Na wordpressie używam wtyczki do automatycznej zmiany rozmiaru przesyłanych obrazów. Używa narzędzia po stronie serwera o nazwie littleutils (http://sourceforge.net/projects/littleutils/). Chciałem użyć czegoś takiego. Co sprawia, że ​​wierzę, że można jeszcze bardziej skompresować JPEG bez utraty * dużej * jakości lub zmniejszenia rozdzielczości. Obecnie większość moich obrazów ma 2305x3072 lub 2592X1944.
Znalazłem to na linuxie http://www.manpagez.com/man/1/opt-jpg/
och, więc jesteś gotów poświęcić postanowienie?
Najlepiej nie. Porównam i zobaczę, czy robi to dużą różnicę. Patrzę na narzędzie opt-jpg, które połączyłem, które kompresuje obrazy bez utraty rozdzielczości (użyłem go na moim blogu wordpress i automatycznie kompresuje jpeg po stronie serwera). ale nie próbowałem tego samodzielnie, więc mogę spróbować.
Zgadzam się ze wszystkim, co zostało tutaj powiedziane, ale chciałbym zwrócić uwagę, że chociaż wiele osób pokazuje zdjęcia na telefonie, lubi też powiększać, aby pokazać bardziej szczegółowo części zdjęcia. Jeśli zrobisz to, ale zmniejszysz próbkowanie obrazu do rozdzielczości ekranu telefonu, ZOBACZ różnicę, ponieważ teraz wyświetlasz mniejszy obszar w rozdzielczości telefonu, ale już straciłeś te piksele. Tylko myśl.
@AK4749 zgadza się w 100% z twoją obserwacją i miałem wątpliwości, czy powinienem uwzględnić tę obserwację, kiedy na nią odpowiadałem, czy nie ... proszę, edytuj, jeśli chcesz.
bougui
2014-06-13 19:44:04 UTC
view on stackexchange narkive permalink

Możesz uzyskać bezstratną optymalizację (na podstawie optymalizacji tabel Huffmana). Narzędzie jpegoptim zapewnia ten algorytm.

Zainstaluj go za pomocą (na Debianie):

  apt-get install jpegoptim  

Aby uruchomić symulację (bez trybu akcji):

  jpegoptim -n -p dsc07844.jpg  

zwraca:

  dsc07844.jpg 3872x2592 24-bitowy Exif [OK] 3057132 --> 2518805 bajtów (17,61%), zoptymalizowany.  

Aby zoptymalizować:

  jpegoptim -p dsc07844.jpg  

Zachowuje metadane exif

Jesse Williams
2016-04-19 18:36:03 UTC
view on stackexchange narkive permalink

No cóż, odpowiedziałeś sobie, ale zmieniłeś swoje wymagania. „Bez utraty jakości” i „bez utraty jakości gołym okiem” są zupełnie inne w przypadku obrazów.

Ponadto PNGcrush i opt-jpg działają zupełnie inaczej; zauważając to tylko dlatego, że wspomniałeś o PNGcrush w swoim OP. PNGcrush optymalizuje tylko metadane dotyczące obrazu, a nie sam obraz. Dlatego zazwyczaj zyskujesz tylko 1-2%.

Szczerze mówiąc, jeśli chodzi o dwa obrazy w Twojej odpowiedzi, to dla mnie wyglądają one zupełnie inaczej. Zoptymalizowany obraz jest znacznie bardziej wyblakły i ma mniejszą głębię czerni. Ponieważ jest to JPEG, zostało to prawdopodobnie zrobione przez zagęszczenie palety, co sprawi, że obraz będzie wyglądał ... inaczej.

Odpowiedź na Twoje pierwotne pytanie brzmi, że nie możesz znacznie zmniejszyć rozmiaru pliku bez wpływu na jakiś jakości (poza wspomnianymi wcześniej 1-2% oszczędnościami dzięki kompresji metadanych lub znaczników). tj. poprzez usunięcie danych EXIF, itd., w zależności od formatu pliku (RAW, TIFF, JPEG ).

Aby w jakikolwiek sposób zmniejszyć rozmiar pliku, musisz albo stracić jakość, albo rozdzielczość, albo jedno i drugie. Gdyby tak nie było, fotograf nie zawracałby sobie głowy przetwarzaniem w formacie RAW.

Chris Wuestefeld
2016-06-07 23:20:30 UTC
view on stackexchange narkive permalink

Biorąc pod uwagę rozdzielczość i poziom jakości, istnieje kilka innych formatów plików graficznych, które mogą zapewnić odpowiednik, ale przechowują dane bardziej zwięźle niż stary standardowy JPEG.

Niektóre opcje obejmują

  • JPEG2000 , identyfikowany przez rozszerzenie .jp2, to nieco starszy format, który nigdy nie stał się popularny. Wykorzystuje transformacje falkowe zamiast DCT jpeg (dyskretna transformata kosinusowa), co skutkuje artefaktami, które są mniej oczywiste, co pozwala na większą kompresję przy porównywalnej postrzeganej jakości. Twierdzą o 20% przewadze. https://en.wikipedia.org/wiki/JPEG_2000

  • WebP Google używa bardziej zaawansowanych algorytmów (jeśli rozumieją poprawnie, jest to analogiczne do dzisiejszej lepszej kompresji wideo H.265 w porównaniu do MPEG), która według nich może zaoszczędzić 40% przy równoważnej jakości. http://www.cnet.com/news/google-offers-jpeg-alternative-for-faster-web/#!

  • BPG (dla „lepszej przenośnej grafiki”) to nowy projekt open source. Wydaje się, że jest podobny do WebP, z dodatkowymi zaletami, takimi jak lepsza głębia bitowa i zakres dynamiczny, ale na dzień dzisiejszy ma mniejszą kompatybilność z różnymi programami. http://bellard.org/bpg/

Jeśli chcesz poznać szczegółowe informacje na temat porównania tych i innych, możesz zobaczyć wykresy i wykresy tutaj: https://people.mozilla.org/~josh/lossy_compressed_image_study_july_2014/

Digital Lightcraft
2012-12-14 17:11:25 UTC
view on stackexchange narkive permalink

Musisz „skompresować” folder - można to zrobić na różne sposoby - klasyczny to „Zip”.

W systemie Windows (od XP) kliknij prawym przyciskiem myszy folder zawierający , kliknij „wyślij do”, a następnie „Folder skompresowany”

Powinno to zmniejszyć rozmiar folderu i zapisać go jako plik .zip.

JEDNAK - Pliki JPEG są już skompresowane we własnym kodowaniu - więc ostateczny skompresowany plik może w rzeczywistości wcale się nie różnić.

Jeśli je spakuję, nie będę mógł ich wyświetlić na telefonie, gdzie je przeniosę. Wiem, że można to zrobić indywidualnie. Potrzebuję sposobu, aby zrobić to za jednym zamachem. Najlepiej pod okna.
Ok, rozumiem - hmm, jeśli muszą być zachowane jako jpg, bez poświęcania jakości lub rozdzielczości, nie sądzę, żebyś był w stanie to zrobić. Jeśli chcesz LEKKO obniżyć jakość, aby różnica nie była oczywista, możesz łatwo zaoszczędzić sporą ilość rozmiaru.
E. Fisher
2012-12-14 18:23:00 UTC
view on stackexchange narkive permalink

Możesz użyć programu o nazwie Moo0 Image Sizer, który pozwala na zmianę rozmiaru wielu obrazów naraz (od 15 grudnia 2012 dostępne formaty to jpg, png, bmp i gif).

Program jest darmowy do użytku niekomercyjnego.

Cześć E. Fisher, witam na stronie. Myślę, że przydatne byłoby uściślenie twojej odpowiedzi z dodatkowymi i potwierdzonymi szczegółami.
bran
2012-12-15 16:42:06 UTC
view on stackexchange narkive permalink

Znalazłem odpowiedź, której szukałem. Odpowiedź to opt-jpg dla systemu Linux. Nie znalazłem tego w repozytorium Ubuntu. Musisz więc pobrać źródło littleutils ( http://sourceforge.net/projects/littleutils/), które zawiera opt-jpg.

Aby zainstalować ze źródła. Pobierz Tar za pomocą wget i:

  tar jxvf littleutils-1.0.27.tar.bz2 && cd littleutils-1.0.24  

...

./configure --prefix = / usr && make && make install && make install-extra  

Musisz być rootem, więc sudo su

Na przykład użyłem obrazu kaczki. Niezoptymalizowany plik ma 1,1 MB po optymalizacji 991 KB bez utraty jakości obrazu (gołym okiem) lub zmiany rozdzielczości obrazu. Może się wydawać, że nie jest to duża różnica (redukcja o 108 kb), ale przy 2300+ obrazach i średnim rozmiarze 6,44 GB przy takim samym zmniejszeniu rozmiaru może dodać dużo miejsca. enter image description here

Możesz zobacz oryginalny obraz Duck przesłany do flickr: enter image description here

A zoptymalizowany: enter image description here

Czy gołym okiem widać różnicę?

ile miejsca faktycznie zaoszczędziłem. Będziesz musiał trochę poczekać, ponieważ będę musiał pozwolić mu działać, gdy nie używam komp. To zajmie trochę czasu i nie zapomnę o zgłoszeniu.

Chcę tylko poinformować ludzi o tym, ile miejsca zaoszczędziłem. Ukończenie go zajęło około 25 minut, a ja zaoszczędziłem około ~ 200 MB.
Czyli łączna oszczędność 3%?
Poza tym wiesz, że to łabędź, a nie kaczka, prawda?
@mattdm Tak niewiele, ale teraz wiem, że da się to zrobić i nie jest to „TANSTAAFL” :)
@RowlandShaw Tak, zdaję sobie z tego sprawę, ale zbyt leniwy, żeby to zmienić :)
Cóż, nie jestem pewien, czy nazwałbym 3% „obiadem”. Może bardziej lekka przekąska. :)
Gołym okiem nie widać różnicy, jeśli zmniejszysz rozdzielczość, aby dopasować ją do telefonu, ani jeśli zmniejszysz jakość z 12 do 8. Te dwie rzeczy razem pozwoliłyby zaoszczędzić% 75, a nie 3% rozmiaru pliku , przenosząc całą kolekcję pod koncert, bez możliwości sprawdzenia bez powiększania. (Nie jestem pewien, jakie ustawienia jakości zostały pierwotnie zapisane, ale zwykle można uzyskać obraz o rozmiarze HD do 250 kb lub więcej i nadal świetnie wyglądać).
Pierwszą rzeczą do zrobienia podczas porównywania jakości jest, cóż, ilościowe określenie tego, co masz na myśli, a następnie zmierzenie, zmierzenie, zmierzenie. Niezła dyskusja na temat suwaka Lr JPEG: http://regex.info/blog/lightroom-goodies/jpeg-quality
Elias Monteiro
2016-06-08 01:25:48 UTC
view on stackexchange narkive permalink

w systemie Windows używam programu o nazwie RIOT (radykalne narzędzie do optymalizacji obrazu). Do tej pory to najlepsze, o czym wiem.

http://luci.criosweb.ro/riot/

vikkee
2016-06-08 03:06:07 UTC
view on stackexchange narkive permalink

„Image Resizer for Windows” to świetne bezpłatne narzędzie w mniej niż 1 MB dla użytkowników systemu Windows. Wszystkie obrazy o wielkości 5 MB lub 10 MB można rozbić do mniej niż 200 kb, z prawie taką samą wyrazistością. Problem polega na tym, że te obrazy o wielkości 10 MB mają rozdzielczość 4000 X 3000, ale Twój telefon lub komputer to dopiero trzecia część tego, co sprawia, że ​​czuje się prawie tak samo. Więc jeśli nie masz zamiaru wydrukować żadnego z nich, zalecę kompresję twoich obrazów za pomocą tego naprawdę prostego narzędzia. Po prostu wybierz wszystkie pliki, kliknij prawym przyciskiem myszy i powiedz Zmień rozmiar. Konwertuje 100 obrazów w mniej niż minutę.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...