Оптимизация
графических изображений
Несмотря на наличие
довольно эффективных алгоритмов сжатия графической информации, при сохранении
изображений GIF и JPEG на диск в файлы записывается определенное количество
«лишних» данных, таких, например, как невидимые текстовые
комментарии, автоматически добавляемые в заголовок файла некоторыми
графическими редакторами, ссылки на разработчиков стандарта и соответствующего
программного обеспечения и т. д. Все эти дополнения лишь увеличивают
физический размер файла и не несут никакой полезной нагрузки. Чтобы
сократить время загрузки иллюстраций в клиентский броузер, используют
специальные методы оптимизации изображений.
Существуют два способа
дополнительной компрессии графических файлов: с использованием специальных
утилит, так называемых оптимизаторов графики, и в ручную. Рассмотрим
оба варианта. А начнем мы, пожалуй, с небольшой и очень удобной программы-компрессора
файлов GIF, разработанной МартиномХарингом (Martin Haring), которая
называется GifClean32 (рис. 5.1).
Рме. 5.1. Внешний
вид программы GifClean32
Данная программа
хороша, прежде всего, тем, что позволяет гибко настраивать список тех
компонентов GIF-изображений, которые подлежат удалению, в частности
комментарии из самого файла и редко встречающиеся цвета из файловой
палитры. Левая кнопка, расположенная на панели инструментов GifClean32,открывает
файл GIF для компрессии и редактирования. При помощи следующей кнопки
вы можете внести в открытый графический файл собственные комментарии,
с помощью третьей кнопки — записать комментарии текущего изображения
в отдельный текстовый документ, а посредством четвертой — сохранить
само изображение в любую директорию на диске. Функции следующих четырех
кнопок (слева направо): удаление всех комментариев из изображения, удаление
малоиспользуемых оттенков, отображение извлекаемых комментариев на экране,
отображение обрабатываемого изображения. И наконец, последние три кнопки
(опять же слева направо) — это вызов справки о программе GifClean32,остановка
компрессии после завершения обработки текущего файла и автоматическая
перезапись оптимизированного изображения в файл с тем же именем, что
и исходный. Все перечисленные процедуры продублированы в командной панели.
Оптимизаторы JPEG,
в отличие от компрессоров для файлов стандарта GIF, в большинстве случаев
рассчитаны на эксплуатацию под MS-DOS. Среди них —небольшая утилита
JPEG Cleaner, предназначенная для удаления из изображений JPEG комментариев,
записанных в файл различными графическими редакторами. Это позволяет
сократить объем целевого файла на 5-10 %, а если иллюстрация создана
с применением редактора Adobe Photoshop, то можно добиться сокращения
ее объема вплоть до 45 % без потери качества. Программа имеет русскоязычный
интерфейс и работает только с MS-DOS. При ее запуске под Windows возможно
появление непредвиденных ошибок.
Для оптимизации графики
следует скопировать все необходимые файлы JPEGв тот же каталог, где
хранятся файлы jc.exe и jc.cfg, и выполнить из командной строки процедуру
jc file.jpg или jc *.jpg. Программа самостоятельно найдет и удалит из
предложенных ей файлов всю лишнюю информацию. Для изменения настроек
программы необходимо отдать из командной строки DOS команду jc /с.
Универсальным программным
продуктом для оптимизации графики, ориентированной на Интернет, является
пакет WebGraphics Optimizer производства компании Plenio Software Solutions
(рис. 5.2). Данную программу можно бесплатно загрузить с сайта разработчика
(http://www.webOpt.com) в виде shareware-версии,
доступной для свободного использования в течение 30 дней.
Рис. 5.2. Интерфейс
программы WebGraphics Optimizer
WebGraphics Optimizer
— 32-рязрядное приложение Windows, содержащее множество функций полноценного
графического редактора. Эта программа умеет работать с 24 типами графических
файлов, включая PNG, формат Adobe Photoshop PSD и даже MAC (Mac Paint),
применяющийся на компьютерах Apple Macintosh.
Интерфейс WebGraphics
Optimizer достаточно прост. На панели инструментов расположено всего
лишь тринадцать кнопок и меню управления масштабом обрабатываемой картинки
(рис. 5.3). Их функции таковы.
Риc. 5.3. Панель инструментов
программы WebGraphics Optimizer
1 — создать новый
проект WebGraphics Optimizer;
2 — открыть графический
файл для редактирования;
3 — сохранить текущий
проект;
4 — отменить последнюю
операцию;
5 — скопировать выделенные
данные в буфер обмена;
6 — вставить данные
из буфера обмена;
7 — сделать снимок
экрана;
8 — изменить масштаб
отображения графики на экране;
9 — отобразить на
экране окно инструментов;
10 — кнопки управления
глубиной оптимизации изображения.
Окно инструментов
включает в себя четыре функциональные вкладки, позволяющие оперировать
с исходным изображением, редактируя его параметры. Вкладка Resize (рис.
5.4) дает возможность изменить геометрические размеры исходного изображения
или его выделенного участка путем перемещения мышью «ползунков»
для ширины (Width) и высоты (Height) картинки.
Рис. 5.4. Окно инструментов,
вкладка Resize
Ha вкладке Adjust
Color/Intensity (рис. 5.5) можно корректировать цвета, точнее их интенсивность.
Рабочее поле данной вкладки содержит выпадающее меню со следующими опциями:
Brightness — управление
яркостью;
Gamma correction
корректировка гаммы;
Contrast — управление
контрастностью;
Histogram contrast
— настройка контраста гистограммы;
Stretch Intensity
построчная интенсивность отображения иллюстрации;
Invert — инвертирование
цветов;
Hue — коррекция оттенков;
Saturation — настройка
насыщенности цветов;
Histogram equalize
выравнивание цветовой гистограммы;
Fill color заполнение
выделенного участка каким-либо цветом.
Рие. 5.5. Окно инструментов,
вкладка Adjust Color/Intensity
Каждая опция данного
меню, за исключением пунктов Stretch Intensity, Invert и Histogram equalize,
имеет в нижней части окна собственный «ползунок» настройки,
перемещая который пользователь может задать индивидуальные значения
того или иного параметра.
Вкладка Filters содержит
различные графические фильтры, повторяющие в основном аналогичные фильтры
Adobe Photoshop:
Halftone — «Полутона»;
Blur/Sharpen «Размытие/Резкость»;
Posterize «Пастеризация»
(«Схематизация»);
Mosaic — «Мозаика»;
Emboss — «Чекан»;
Soften — «Смягчение
полутонов»;
Oil Painting — «Масляная
живопись»;
Reduce Noise — «Уменьшить
шум»;
Add Noise — «Добавить
шум»;
Intensity Detect
— «Выделение интенсивности»;
Edge Detect — «Выделение
краев»;
Line Detect — «Выделение
строк».
Каждый из перечисленных
фильтров имеет собственные параметры настройки, отображаемые в том же
окне чуть ниже основного меню. И наконец, вкладка Special (рис. 5.6)
служит для следующих манипуляций с исходным изображением: поворот картинки
на любой угол (Rotate), деформация ее в горизонтальной проекции (Parallelogram)
и зеркальное отражение по вертикали или горизонтали (Flip Image).
Рис. 5.6. Окно инструментов,
вкладка Special
Все команды, вызываемые
нажатием кнопок на панели инструментов, продублированы в панели команд.
Более того, программа Web Graphics Optimizer позволяет работать с выделенными
участками изображения, которые можно задать при помощи пункта системного
меню Edit > Select Region, причем выделение фрагментов возможно в
виде нескольких геометрических фигур: Rectangle (прямоугольник), Ellipse
(овал), Rounded Rectangle (прямоугольник со скругленными углами) и,
наконец, Freehand — произвольная фигура. Можно создать копию текущего
изображения (команда меню Edit > Duplicdate Image), эта функция применяется
в случае, когда пользователь желает поэкспериментировать с дублем, опасаясь
испортить исходную картинку.
Основное рабочее
поле программы Plenio WebGraphics Optimizer занимает разделенное вертикально
окно, отображающее исходное изображение и его оптимизированную копию.
В нижней части панели указаны размеры исходного и оптимизированного
файла, а также коэффициент сэкономленного на компрессии дискового пространства
в процентах. При выборе одного из пяти уровней оптимизации графики (функция
вызывается нажатием кнопок, обозначенных на рис. 5.3 цифрой 10) для
каждого дубликата картинки открывается новое окно, причем пользователь
может выбрать тот вариант изображения, который в наибольшей степени
устраивает его по качеству и размеру файла.
Процедура компрессии
файлов JPEG вручную выглядит достаточно просто в графическом редакторе,
позволяющем обрабатывать изображение, при сохранении картинки в файл
обычно появляется меню, содержащее «ползунок» регулятора
степени сжатия. Она отображается, как правило, в условных пунктах от
1 до 10, причем максимальному сжатию соответствует минимальное качество
картинки. Здесь перед дизайнером стоит только одна задача: найти «золотую
середину», компромисс между наименьшим объемом целевого файла
и допустимым качеством изображения. В большинстве случаев такой компромисс
удается отыскать экспериментальным путем, варьируя настройки компрессора.
С GIF все обстоит гораздо сложнее. Оптимизировать файл по размеру с
помощью встроенных функций графических редакторов не всегда возможно
а использование внешних компрессоров зачастую ведет к нежелательной
и неоправданной потере качества изображения. Происходит это, прежде
всего, потому что все без исключения программы-оптимизаторы графики
используют один алгоритм сжатия GIF для разных картинок, а именно метод
удаления из палитры GIF неиспользуемых и малоиспользуемых цветов с подстановкой
вместо них цветов, близких по оттенкам, что, как правило, портит изображение.
Поэтому, если вы хотите, чтобы ваша страница выглядела качественно и
профессионально, лучше всего оптимизировать GIF вручную. Это занимает
чрезвычайно много времени и требует большого терпения, но для получения
хорошего результата такой способ вполне оправдан.
Поскольку информация
об изображении в файле стандарта GIF записывается построчно, чем однороднее
будет ваше изображение по горизонтали тем компактнее получится целевой
файл. Пример? Пожалуйста. Создадим изображение GIF, состоящее из семи
цветов, соответствующих спектру радуги: красная полоса, оранжевая, желтая,
зеленая, голубая, синяя и фиолетовая, причем все цветовые полосы иллюстрации
разместим на картинке вертикально. Размер изображения составляет 210
на 210 пикселов. Как записывается информация о каждой строке такого
рисунка в графический файл? Приблизительно так: «первая строка:
тридцать точек красного цвета, тридцать точек оранжевого, тридцать точек
желтого» и т. д. При сохранении изображения получится файл объемом
3,9 Кбайт. Теперь развернем картинку на 90° чтобы полосы стали горизонтальными
(рис. 5.7). Логическая запись первой строки в этом случае звучит так:
«двести десять точек красного цвета». Компактнее? Конечно:
файл уменьшился почти в три раза, теперь его объем составляет1,34 Кбайт.
Рис. 5.7. Пример
оптимизации файла GIF методом увеличения однотонных горизонтальных участков
Таким образом, напрашивается
вполне логичный вывод: чем больше ваше изображение будет содержать однотонных
горизонтальных участков, тем компактнее получится целевой файл.
Следует проследить
также за тем, чтобы ваше изображение не содержало большого количества
полутонов. Если на вашей картинке синий цвет плавно «перетекает»
в белый фон посредством восьми полутоновых переходов голубого оттенка,
не проще ли свести этот градиентный участок к трем оттенкам голубого?
Теперь, отредактировав вручную палитру файла и удалив из нее все цвета,
исчезновение которых не повлияет, по вашему мнению, на качество изображения(пункт
Таблица цветов в меню Изображение редактора Adobe Photoshop), вы сократите
время загрузки иллюстрации, а также сэкономите определенное количество
килобайт на диске сервера, где будет размещаться сайт. Следует помнить,
что создание прозрачного фона для GIF также способствует уменьшению
его объема. Затем с помощью любой подходящей утилиты, широкий ассортимент
которых представлен на серверах, предлагающих бесплатное программное
обеспечение, можно удалить из файла все ненужные комментарии, и ваша
картинка готова к публикации.