Прежде чем объяснить, откуда взялся PNG и зачем он нужен, необходимо провести небольшой экскурс в историю, посвященный графике, используемой на веб-сайтах.
Два самых популярных в Сети формата графических файлов — это JPEG (Joint Photographic Experts Group) и GIF (Graphic Interchange Format). Между ними изначально были принципиальные отличия — в то время как JPEG поддерживал 24-битный цвет, GIF позволял отобразить всего 256 цветов (8 бит максимум). При этом технологии компрессии, используемые в JPEG и GIF, достаточно сильно отличались, вследствие чего они моментально разобрались по различным задачам:
- JPEG чаще всего использовался при сохранении иллюстраций с большим количеством цветов (полутоновые переходы, фотографии).
- GIF применялся для иллюстраций с малым числом цветов, где границы между различными цветовыми элементами были четко очерчены (компьютерные скриншоты, контурные рисунки, текст как графика).
GIF — один из старейших форматов компьютерной графики (создан в 1987 году), JPEG является более новым — окончательно утвержден в 1995 годуПри этом не стоит забывать, что, несмотря на поддержку так называемого True Color (32-битный цвет, более четырех миллиардов оттенков) на рабочем столе пользователей Windows, в действительности, в один момент времени используется куда меньше цветов — хотя бы по той простой причине, что для отображения такого количества различных цветов на дисплее необходимо не меньшее число пикселей, в то время как не самое маленькое разрешение экрана 1920x1440 дает нам меньше трех миллионов пикселей.
GIF. Не хватает палитры. |
True color нужен лишь при отображении скриншотов, так как цвета палитры, используемые в изображении, могут принадлежать любым участкам цветового спектра, в то время как для их сохранения можно (а в целях уменьшения объема изображения — нужно) использовать палитры с меньшим количеством цветов. При сохранении в формате GIF первым делом составляется палитра используемых цветов (до 256), которая записывается в файл. Затем последовательно (при интерлейсинге процесс выглядит несколько иначе, но об этом ниже), пиксель за пикселем, содержимое сохраняется. Получившаяся битовая последовательность сжимается по алгоритму Lempel-Ziv-Welch (LZW) и записывается в файл. GIF поддерживает так называемый интерлейсинг — метод сохранения файлов, при котором имеется возможность увидеть изображение полностью (с более низким разрешением) при его частичной загрузке. Достигается это тем, что строчки пикселей загружаются не последовательно, а через определенные промежутки. То есть сначала могут быть загружены первая, четвертая, восьмая и так далее строчки пикселей, затем вторая, пятая, девятая строчки. Остальные строчки загружаются по такому же принципу. Недогруженные пиксели интерполируются самим браузером. Расплачиваться за такую возможность приходится небольшим увеличением размера файла: один-два процента от общего объема. Разумеется, выгоду интерлейсинга, прежде всего, почувствуют пользователи коммутируемого доступа — при более скоростных видах подключения к Интернету необходимости в отображении частично загруженного файла не возникает.
Срок действия патента Unisys на территории США истек в 2003 году. Однако в других «программерских» странах (Канада, Япония) он продолжает действоватьИ все было бы хорошо: пользователи для рисунков с цветовыми переходами пользовались бы JPEG'ом, а для контурных картинок — GIF'ом. Тем не менее появился формат PNG, как альтернатива GIF'у, который изначально всех устраивал. Все дело в том, что в основе сжатия, применяемого к графическим файлам при сохранении их в формате GIF, лежит алгоритм упаковки LZW, коротко описанный выше. В конце 1994 года дало о себе знать крайне неприятное обстоятельство — компания Unisys, которой принадлежал патент на метод сжатия LZW, «вспомнившая» об этом в 1993 году, ужесточила свою патентную политику. И с 1994 года данная ситуация вылилась в преследование производителей коммерческого программного обеспечения, использующих в своих продуктах метод сжатия LZW. Избежать проблем можно было, лишь уплатив Unisys определенный лицензионный сбор.
JPEG. Все нормально. |
Представители Compuserve, являвшейся создателем GIF'a, ситуацию никак изменить не смогли. Им оставалось лишь выразить сожаление, что о патентных проблемах с LZW стало известно лишь тогда, когда GIF набрал огромную популярность. Тем не менее даже в США, истерически относящихся к различным правовым аспектам, данная проблема больше всего затрагивает не веб-дизайнеров, а тех, кто создает программы для работы с GIF, то есть программистов. Однако на стоимость серьезных пакетов для работы с графикой данное обстоятельство влияет слабо.
Сразу же начал вырабатываться стандарт PNG. Работа над ним была (по большей части) завершена в 1997 году. Новый формат использовал алгоритм Deflate, который был лишен проблем с патентованием, а по своим характеристикам не сильно отличался от LZW.
PNG обладает изменяемой степенью сжатия. Она не влияет на качество (PNG использует сжатие без потери качества), а только на время обработки файлаСобственно, как уже говорилось выше, GIF и PNG играют на одном поле: их удел — графика «искусственного» происхождения, то есть различные пиксельные иллюстрации, скриншоты и другие изображения с ограниченным количеством цветов. Стоит отметить, что PNG в состоянии сохранять изображения с куда большим количеством цветов, чем GIF, однако, как правило, для изображений, где используется много цветов, более рационально использование JPEG. Объем файла в формате PNG при использовании большого количества цветов может приближаться к объему такого же файла, сохраненного в стандартном BMP. Тем не менее PNG (24-битный) достаточно неплохо смотрится как формат для хранения промежуточных результатов работы над полноцветными изображениями — используемое сжатие без потерь, в отличие от JPEG, не ухудшает качества файла при операциях над ним.
Основными преимуществами PNG является то, что формат поддерживает альфа-каналы (переменная прозрачность изображения) и гамма-коррекцию отображения картинки. При сохранении на основе палитры, используемой в изображении, количество цветов ограничено теми же 256 (8 бит), что и в GIF. Интерлейсинг в PNG используется по умолчанию.
Хорошо, если PNG по сути не очень отличается от GIF. В каком случае какой формат лучше использовать? Здесь надо смотреть на следующее:
- PNG можно использовать просто для оптимизации размеров файлов. Если в формате PNG изображение занимает меньше места, рационально использовать именно PNG. Разница между PNG и GIF по размеру может быть очень существенной, однако, как правило, не отличается больше, чем на 10-20 процентов в ту или иную сторону.
- PNG не поддерживает анимацию. Для создания анимированных изображений используйте GIF.
- В некоторых случаях использование альфа-каналов позволяет улучшить восприятие иллюстрации (убрать резкий цветовой переход между изображением и подложкой). В этом случае ваш выбор — PNG.
На данный момент PNG поддерживается всеми браузерами и практически всеми пакетами для работы с изображениями, так что беспокоиться о том, что у кого-то файл может не отобразиться, как задумывалось дизайнером, беспокоиться не стоит.
Ссылки по теме
Статья получена: hostinfo.ru