Почему iPhone делает снимки экрана в формате PNG?

Ответы:

64

PNG полезен не только для обеспечения прозрачности: PNG - это формат без потерь , в то время как JPEG использует форму сжатия с потерями . Также PNG довольно хорошо сжимает скриншоты (в отличие от фотографий с камеры, поэтому Apple использует JPG для них).


Больше информации, если интересно:

введите описание изображения здесь

Также стоит прочитать технический обзор того, для чего нужен PNG (в основном это одна из основных ссылок по теме и содержит достаточно подробностей, чтобы провести на ней день). Выдержка:

В Интернете с начала 1999 года есть два формата изображений с повсеместной поддержкой: JPEG и GIF. JPEG очень хорошо подходит для задачи, для которой он был разработан, а именно для хранения, передачи и отображения фотореалистичных 8-битных изображений в градациях серого и 24-битных полноцветных изображений с хорошим качеством и превосходным сжатием - и PNG никогда не предназначался для конкурировать с JPEG на своих собственных условиях. Но PNG, как и GIF, более подходит, чем JPEG, для изображений с небольшим количеством цветов или с большим количеством острых краев, таких как мультфильмы или растровый текст. PNG также обеспечивает прямую поддержку гамма-коррекции (в общем, межплатформенное управление «яркостью» изображения) и прозрачности. Я буду обсуждать это более подробно в ближайшее время.

GIF был оригинальным кроссплатформенным форматом изображений для Интернета, и он по-прежнему остается хорошим выбором во многих отношениях. Но PNG был специально разработан для замены GIF и имеет три основных преимущества по сравнению со старым форматом: альфа-каналы (переменная прозрачность), гамма-коррекция и двумерное чередование (метод отображения изображений с постепенно увеличивающимися уровнями детализации). PNG также сжимает лучше, чем GIF почти в каждом случае, но разница обычно составляет всего около 5-25%, что (как правило) не является достаточно большим фактором, чтобы побудить человека переключаться только на эту основу. Одна функция GIF, которую PNG не пытается воспроизвести, - это поддержка нескольких изображений, особенно анимации; PNG был и должен быть только в формате одного изображения. Очень PNG-подобный формат расширения под названием MNG был разработан для устранения этого ограничения.

Франк Дернонкур
источник
3
Кстати, ключевое различие между снимками экрана и фотографиями с камеры заключается в том, что снимки экрана в основном представляют собой геометрические фигуры и не являются «размытыми», как на фотографиях с камеры (поэтому фотография со сжатием PNG может быть больше оригинала). Однако, чтобы хорошо сжать данные камеры, некоторая точность теряется, поэтому вы не используете ее в мире совершенно четких линий и точного расположения, что является скриншотом.
cpast
4
Иными словами, ключевое отличие заключается в характере вариации данных на пиксель на фотографиях по сравнению с большинством визуализированной графики. Рендеринг графики, как правило, содержит области одинаковой окраски и прозрачности, с которыми хорошо ориентируется повторяющееся сжатие PNG . С другой стороны, фотографии демонстрируют непрерывные, сложные вариации по всему изображению из-за сложности физического мира, который они захватывают. Там практически нет повторений. Таким образом, JPEG использует другой подход, охватывающий изменение путем кодирования частотного пространства изображения, его коэффициентов Фурье.
Терри N
Приятно показать и рассказать. Вы определенно узнаете что-то новое каждый день.
Мухамана
1
Это поднимает вопрос, и те из нас, кто занимался веб-разработкой в ​​90-х и начале 2000-х годов, слишком осведомлены об этом, но остается, что если вы можете выбрать только ОДИН формат, PNG обычно лучше. Неправильный выбор PNG приводит к размеру файла, превышающему необходимый, в то время как неправильный выбор JPG может привести к большему количеству файлов, чем необходимо, и / или к потере качества.
Джон Стори
@Franck, Цитирование, необходимое для «PNG был специально разработан для замены GIF» ,
Pacerier
50

Потому что это:

Скриншот PNG

выглядит намного лучше, чем это:

Скриншот в формате JPEG

ОК, так что я должен был провернуть JPEG качество сжатия пути вниз , чтобы артефакты сжатия, очевидные, но вопрос остается - это PNG скриншот показывает именно то , что вы видите на экране, в то время как скриншот JPEG это всегда немного с потерями (да , даже если провернуть качество до 100).

Кроме того, PNG, как правило, очень хорошо сжимает изображения с большими областями плоского цвета, резкими краями и повторяющимися узорами (например, текст). Таким образом, во многих случаях скриншот PNG без потерь может фактически быть меньше, чем скриншот JPEG, сохраненный с любым приемлемым уровнем качества.

Илмари Каронен
источник
5
реквизит для шоу, а не рассказывать!
japreiss
Но здесь PNG в 4 раза больше формата JPEG (33ko против 8 ko). Возможно, вам стоит попробовать загрузить JPEG такого же размера, как и PNG, для истинного сравнения
Томас Айоуб
@ Томас: вот 35 кБ JPEG для сравнения. Это не так плохо, как крошечный 8 КБ, но все же имеет видимые артефакты сжатия, такие как серая окантовка вокруг текста. Однако для ответа мне нужен пример, в котором артефакты были бы очевидны , даже если у вас плохое зрение.
Илмари Каронен
Я понимаю, но лучше сравнивать яблоки с яблоками, потому что, если вы принесете морковь, то ваш хороший ответ станет полу-хорошим ответом. Во всяком случае, я голосовал за вас за наглядный пример :)
Томас Аюб
Также есть смысл, что мы перестали заботиться о килобайтах около десяти лет назад: PNG - это лучшее сжатие без потерь, которое у нас есть, поэтому, как правило, это лучший выбор, если только пространство не стоит слишком дорого. В мире видео высокой четкости несколько килобайт на фотографии больше не являются проблемой.
Джон Стори
10

Одна из функций скриншота - показать кому-то конкретный визуальный артефакт, который вы видите на своем устройстве - возможно, показать визуальный сбой разработчику приложения. В таких случаях любые артефакты сжатия могут отвлекать от обсуждаемой проблемы; скриншот должен быть идеальным для пикселей.

Таким образом, формат без потерь, такой как .PNG, является обязательным.

Рассел Борогове
источник