Фотографии и формат GIF

Из материала, посвященного форматам, следует что формат JPEG наиболее подходит для сохранения фотографий с их плавными переходами.

Вы также знаете, что в Web используются форматы GIF и PNG. Следовательно, в любом случае возникает вопрос - а чем они не пригодны для сохранения фотографий?

Выбор формата GIF

Изучим этот вопрос. Возьмем коллаж, который мы создавали ранее:

Размеры фотографии исходно велики: ширина 1006 пикселей, высота - 1177 пикселей; исходный файл в формате TIFF имеет размер примерно 3,4 Мегабайта.

В формате JPEG эта фотография сохраняется хорошо, давая в формате JPEG для размеров 342 на 400 пикселей с качеством 30 сравнительно небольшой файл (около 17 килобайт). Кстати, именно эта фотография приведена на нашем рисунке.

Посмотрим, чем нам не нравится, если мы сохраняем эту фотографию в формате GIF. Откроем окно Save for Web (команда File/Save for Web). Щелкнем кнопку выпадающего списка в поле, где было написано JPEG:

Выберем формат GIF.

Палитра

В правой части окна Save for Web получим:

В первую очередь вы видите, что активировалась вкладка  Color Table (Таблица цветов). Это связано с тем,  что в соответствии с описанием формата GIF всего возможных цветов в изображении допускается не более, чем 256. Правда, эти цвета подбираются, с учетом цветовой палитры изображения. Понятно, что хотя мы говорим, что модель RGB для  исходного изображения допускает 16,7 миллионов цветов, тем не менее число пикселей составляет в данном изображении 1 миллион 184 тысячи, то есть не может быть цветов больше, чем число пикселей (другое дело, что эти цвета выбраны из общей палитры в 16,7 миллионов). Так что сужение палитры до 256 цветов может быть не столь уж катастрофично в общем случае.

Dither

Кроме того, обратите внимание на поле, в котором сейчас стоит опция Diffusion. Щелкните выпадающий список.

Красной рамкой выделена опция No Dither. Ясно, что все остальные опции - это Dither в разных вариантах. Что же обозначает слово Dither ? В других случаях это - добавление псевдослучайного сигнала, размывание или сглаживание резких контуров.

При использовании опции Dither Photoshop "смешивает цвета, чтобы симулировать "средний" цвет, не существующий в палитре. Такое смешивание позволяет уменьшить появление блоков или полос в изображении, оно может привести к увеличению размеров файла изображения" (Цитата из Справки к Photoshop)

Поясним смешивание цветов на примере. Предположим у вас есть палитра из двух цветов - желтого и синего. А в изображении должен присутствовать еще и область зеленого цвета. Если в этой области разместить рядом пиксели желтого и синего цвета, то в силу того, что человеческий глаз усредняет цвета пикселей, расположенных рядом, вы будет видеть в этой области зеленый цвет.

Например, запустите программу PowerPoint, создайте пустую презентацию. Отдайте команду Формат/Фон и выберите для заливки фона способ заливки Узор, например, Мелкая клетка (имитирующий, с нашей точки зрения, расположение пикселей, подобно опции Dither) Тогда вы увидите (в окне Способы заливки/Текстура):

В поле Образец явно виден зеленый цвет. Легко понять, что при уменьшении шага узора отдельные точки ещё более сольются и структура узора не будет видна.

Включение Dither улучшает качество воспроизведения градиентных заливок, но увеличивает размер файла.

Оптимизация в формате GIF

Таким образом, качеством оптимизации в формате GIF вы можете управлять

При размере по вертикали в 400 пикселей этот портрет при сохранении в формате GIF при включенном Dither и числе цветов 256 имеет размер файла 106 килобайт и время загрузки 39 секунд. Это много.

Отключение Dither уменьшает объем файла до 100 килобайт.

Изменение размера по вертикали до 300 килобайт уменьшает размер файла до 54 килобайт. Учтите, что включение режима JPEG вместо GIF (при качестве 30) дает размер файла 9,8 килобайт, то есть никаких сомнений в том, что портреты и пейзажи надо сохранять в JPEG у авторов данного курса нет! Но мы будем упорствовать, пытаясь сохранить в формате GIF, чтобы увидеть - к чему эти попытки приведут.

Начнем уменьшать число цветов в изображении, отслеживая изменение размера файла и пытаясь приблизиться к размерам порядка 10 - 15 килобайт. Вы можете предсказать результат такого эксперимента: поскольку количество цветов падает, то плавность цветовых переходов исчезает. В первую очередь будут теряться цвета, которые занимают незначительную площадь. В данном случае это - серо-зеленые глаза. То есть выразительность портрета, задаваемая в первую очередь выражением глаз, погибнет первой!

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

При 64 цветах палитры портрет с размером 300 пикселей по вертикали и с отключенным Dither "весит" больше 31 килобайта.

Размеры файла в формате GIF, сравнимые с размерами файла в формате JPEG, достигаются только при числе цветов 16. Результат, представленный на следующем рисунке, говорит сам за себя (слева оригинальное изображение, справа - оно же в формате GIF с 16 цветами и без функции Dither)

Исходное изображение Сохранено в формате GIF

Очень поучительно посмотреть - во что превратились блики на лбу правом веке, а также легкая тень на шее.

Приведем для сравнения тот же портрет в формате  JPEG:

Исходное изображение Сохранено в формате JPEG

Исходное изображение (с размером 300 пикселей по вертикали) имеет размер файла 225 килобайт

Изображение в формате GIF - 14,2 килобайт

Изображение в формате JPEG - 9,8 килобайт.

Результат говорит сам за себя.

На языке компьютерной графики вердикт звучит так: не следует сохранять полутоновые изображения (то есть изображения с большим числом полутонов, цветовых и яркостных переходов) в формате GIF. Мы показали здесь - ПОЧЕМУ это так.