Dlaczego iPhone przechwytuje zrzuty ekranu jako PNG?

Odpowiedzi:

64

PNG jest nie tylko użyteczny do zapewnienia przezroczystości: PNG jest formatem bezstratnym , podczas gdy JPEG stosuje kompresję stratną . Również PNG dość dobrze kompresuje zrzuty ekranu (w przeciwieństwie do zdjęć z aparatu, dlatego Apple używa JPG do tych zdjęć).


Więcej informacji w razie zainteresowania:

wprowadź opis zdjęcia tutaj

Ponadto omówiono techniczne, co jest dobre dla PNG warto przeczytać (to w zasadzie jeden z głównych referencji na ten temat i zawiera wystarczającą ilość informacji, aby spędzić dzień na nim). Fragment:

W Internecie od początku 1999 r. Istnieją dwa formaty obrazów z wszechobecną obsługą: JPEG i GIF. JPEG jest bardzo dobrze przystosowany do zadania, do którego został zaprojektowany - a mianowicie do przechowywania, transmisji i wyświetlania fotorealistycznych 8-bitowych obrazów w skali szarości i 24-bitowych obrazów trójkolorowych o dobrej jakości i doskonałej kompresji - a PNG nigdy nie było przeznaczone konkurować z JPEG na własnych warunkach. Ale format PNG, podobnie jak GIF, jest bardziej odpowiedni niż JPEG w przypadku obrazów o kilku kolorach lub z dużą ilością ostrych krawędzi, takich jak bajki lub tekst bitmapowy. PNG zapewnia również bezpośrednie wsparcie dla korekcji gamma (luźno mówiąc, międzyplatformowa kontrola `` jasności '' obrazu) i przezroczystości. Omówię je bardziej szczegółowo wkrótce.

GIF był oryginalnym wieloplatformowym formatem obrazów dla Internetu i nadal jest dobrym wyborem pod wieloma względami. Ale PNG został specjalnie zaprojektowany, aby zastąpić GIF, i ma trzy główne zalety w stosunku do starszego formatu: kanały alfa (zmienna przezroczystość), korekcja gamma i dwuwymiarowe przeplot (metoda wyświetlania obrazów przy coraz wyższym poziomie szczegółowości). PNG kompresuje również lepiej niż GIF w prawie każdym przypadku, ale różnica wynosi zwykle tylko około 5% do 25%, co (zwykle) nie jest wystarczająco dużym czynnikiem, aby zachęcić do przejścia na tę samą zasadę. Jedną z funkcji GIF, których PNG nie próbuje odtworzyć, jest obsługa wielu obrazów, zwłaszcza animacji; PNG był i ma być tylko formatem jednego obrazu. Opracowano bardzo podobny do PNG format rozszerzenia o nazwie MNG, aby rozwiązać ten problem.

Franck Dernoncourt
źródło
3
Nawiasem mówiąc, kluczową różnicą między zrzutami ekranu i zdjęciami z aparatu jest to, że zrzuty ekranu są zasadniczo geometrycznymi kształtami i nie są „rozmyte” tak jak zdjęcia z aparatu (więc zdjęcie skompresowane PNG może być większe niż oryginał). Jednak, aby dobrze skompresować dane z kamery, traci się trochę precyzji, więc nie używasz jej w świecie idealnie ostrych linii i precyzyjnego ułożenia, które jest zrzutem ekranu.
cpast
4
Innymi słowy, kluczową różnicą są wzorce zmienności danych na piksel na zdjęciach w porównaniu z najczęściej renderowaną grafiką. Renderowana grafika zazwyczaj zawiera obszary o identycznym zabarwieniu i przezroczystości, co dobrze radzi sobie z kompresją zorientowaną na powtarzanie PNG . Z drugiej strony fotografie wykazują ciągłą, złożoną zmienność obrazu ze względu na złożoność rejestrowanego świata fizycznego. Praktycznie nie ma powtórzeń. Tak więc JPEG przyjmuje inne podejście, obejmując wariację, kodując przestrzeń częstotliwości obrazu, jego współczynniki Fouriera.
Terry N
Niezły pokaz i powiedz. Na pewno uczysz się czegoś nowego każdego dnia.
Muhnamana,
1
Podnosi to słuszną kwestię, a ci z nas, którzy zajmowali się tworzeniem stron internetowych w latach 90. i na początku 2000 r., Są zbyt świadomi, ale pozostaje faktem, że jeśli możesz wybrać JEDEN format, PNG jest zwykle najlepszy. Niewłaściwy wybór PNG powoduje, że rozmiary plików są większe niż to konieczne, natomiast niewłaściwy wybór JPG może spowodować, że pliki będą większe niż to konieczne i / lub pogorszenie jakości.
Jon Story
@Franck, potrzebne cytowanie dla „PNG został specjalnie zaprojektowany, aby zastąpić GIF” ,
Pacerier
50

Ponieważ to:

Zrzut ekranu PNG

wygląda o wiele lepiej niż to:

Zrzut ekranu JPEG

OK, więc musiałem korby Jakość JPEG kompresja drogę w dół, aby artefakty kompresji takie oczywiste, ale szczątki Point - PNG pokazy screenshot dokładnie to, co widzisz na ekranie, natomiast zrzut ekranu JPEG jest zawsze trochę stratny (tak , nawet jeśli podniesiesz jakość do 100).

Poza tym PNG zwykle dobrze radzi sobie z kompresowaniem obrazów z dużymi obszarami płaskiego koloru, ostrymi krawędziami i powtarzającymi się wzorami (jak tekst). Dlatego w wielu przypadkach bezstratny zrzut ekranu PNG może być mniejszy niż zrzut ekranu JPEG zapisany na dowolnym akceptowalnym poziomie jakości.

Ilmari Karonen
źródło
5
rekwizyty na pokaz zamiast mówić!
japreiss,
Ale tutaj PNG jest 4 razy większy niż JPEG (33ko vs 8 ko). Może powinieneś spróbować przesłać plik JPEG tego samego rozmiaru co PNG, aby uzyskać prawdziwe porównanie
Thomas Ayoub,
@ Thomas: Oto plik JPEG 35 kB do porównania. Nie jest prawie tak zły jak mały 8 kB, ale nadal ma widoczne artefakty kompresji, takie jak szare obwódki wokół tekstu. Aby uzyskać odpowiedź, chciałem znaleźć przykład, w którym artefakty byłyby oczywiste , nawet jeśli ekran / wzrok byłby słaby.
Ilmari Karonen,
Rozumiem, ale lepiej porównywać jabłka z jabłkami, ponieważ jeśli przyniesiesz marchewki, twoja ładna odpowiedź stanie się półprzyjemna. W każdym razie głosowałem za wizualnym przykładem :)
Thomas Ayoub
Jest też kwestia, że ​​przestaliśmy dbać o kilobajty mniej więcej dziesięć lat temu: PNG to najlepsza kompresja bezstratna, jaką mamy, dlatego zazwyczaj jest to najlepszy wybór, chyba że przestrzeń jest na wagę złota. W świecie filmów w wysokiej rozdzielczości kilka KB na zdjęciu nie stanowi już problemu.
Jon Story
10

Jedną z funkcji zrzutu ekranu jest pokazanie komuś konkretnego artefaktu wizualnego, który widzisz na swoim urządzeniu - być może pokazanie usterki wizualnej twórcy aplikacji. W takich przypadkach wszelkie artefakty kompresji mogą odwracać uwagę od omawianego problemu; zrzut ekranu musi być w pikselach.

Dlatego obowiązkowy jest format bezstratny, taki jak .PNG.

Russell Borogove
źródło