Возможность записи чересстрочных файлов была
введена во второй версии формата GIF, опубликованной в 1989 году.
Эту версию обозначают "GIF89a" в отличие от первой - "GIF87a".
(Быстро выяснить разновидность формата GIF-файла можно, просто
заглянув в него любой утилитой для просмотра текста; первые шесть
символов файла содержат либо "GIF89a", либо "GIF87a".)
В этой же версии появились и другие важные
усовершенствования, а именно возможность указывать прозрачный цвет и
записывать в один файл несколько самостоятельных картинок - кадров
движущегося, мультипликационного изображения.
К сожалению, все эти новшества мало где применялись
до того, как их поддержка появилась в браузерах WWW. Поэтому
большинство графических программ до недавнего времени не утруждали
себя работой с форматом GIF89a, записывая файлы только в GIF87a.
Первые две из этих возможностей - запись чересстрочных файлов и
указание прозрачного цвета - поддерживаются в упомянутых выше LView
Pro и Adobe Photoshop, а для работы с GIF-анимацией существуют
отдельные программы, об одной из которых я расскажу ниже.
Прозрачный цвет позволяет, по сути, создавать
GIF-файлы произвольной формы - пикселы рисунка, имеющие этот цвет,
при просмотре в браузере будут невидимы. Казалось бы, поскольку HTML
не позволяет (пока) накладывать изображения друг на друга или на
текст, этим имеет смысл пользоваться только на тех страницах, фон
которых заполнен каким-то изображением. Однако из-за почти
неизбежной диффузии в браузере, о которой мы уже говорили, к
прозрачности приходится прибегать даже тогда, когда фон страницы
покрашен однородным цветом: если вы заполните фоновые части рисунка
тем же самым цветом, но не сделаете их прозрачными, граница между
шершавым фоном рисунка и гладким фоном страницы в браузере будет
слишком хорошо заметна. Отсюда же следует, что в изображениях,
использующих прозрачность, нельзя пользоваться редукцией палитры с
диффузией - ведь прозрачным может быть объявлен только один цвет, и
если фон изображения будет состоять из смеси разноцветных пикселов,
полностью прозрачным его сделать уже не удастся (впрочем, как мы
увидим ниже, использование Adobe Photoshop позволяет обойти это
ограничение).
Следует иметь в виду, что граница между прозрачным
цветом и остальными элементами изображения должна быть как можно
более резкой. Любая хоть сколько-нибудь размытая граница, содержащая
пикселы промежуточных цветов, уже не будет прозрачной, и в
результате в браузере вокруг видимых элементов изображения будет
неприятный ореол. И хотя "мягкие" цветовые переходы (по-английски
этот эффект называется "anti-aliasing") в компьютерной графике по
справедливости считаются признаком профессионализма, на внешнем
контуре рисунков с прозрачным фоном их следует избегать.
С другой стороны, если фоновое изображение, на
котором будет расположен ваш рисунок, достаточно однородно по цвету,
можно залить задний план рисунка схожим цветом и сделать его
прозрачным. В этом случае размытая внешняя граница уже не страшна,
так как она будет благополучно сливаться с фоновым изображением. Не
забудьте только, что при загрузке страницы в браузер фоновое
изображение нередко подходит из сети позже, чем графика переднего
плана с прозрачным фоном. Поэтому, чтобы не портить впечатление, в
теге <BODY> вашей страницы, помимо атрибута BACKGROUND,
полезно указать также атрибут BGCOLOR, подобрав для него цвет,
максимально близкий к основному цвету фонового изображения.
В LView Pro версии 1.D2 чересстрочный режим записи
GIF-файлов устанавливается командой Save Interlaced на панели GIF
окна Properties (команда File|Properties), а для указания
прозрачного цвета служит команда Background Color в меню Retouch. В
диалоговом окне Background Color можно нажать кнопку Dropper, что
позволит указать нужный цвет "пипеткой" прямо на изображении.
Если же вы хотите работать с GIF89a в Adobe
Photoshop версии 3.0, то вам прежде всего нужно сходить в Интернет и
взять
подключаемый модуль (plug-in). Когда вы поместите этот модуль в
подкаталог для подключаемых модулей Photoshop, в подменю File|Export
появится новая команда GIF89a Export. Дав эту команду для
полноцветного изображения (рис.
4), вы сможете, во-первых, проделать все операции выбора размера
палитры, о которых мы уже говорили, а во-вторых - установить режим
чересстрочной записи (флажок Interlaced) и указать цвет, который
будет помечен как прозрачный.
Рисунок 4. Экспорт
изображения в GIF89a из Adobe Photoshop
Однако будьте внимательны: выбор цвета в этом окне
не означает "сделать прозрачным все, что имеет этот цвет", а
наоборот - "покрасить в этот цвет все, что должно быть прозрачным".
Чтобы указать, что же именно в изображении будет прозрачным, а что
нет, нужно проделать кое-какую подготовительную работу. Выделите все
непрозрачные части изображения и перенесите их на отдельный слой,
спрятав все остальные слои, - чтобы на тех местах, которые вы хотите
сделать прозрачными, была видна клетчатая подложка, которую
Photoshop показывает в отсутствие какого-либо другого фона (рис.
5). Теперь при выборе команды GIF89a Export в файл будет
записано только содержимое видимого в данный момент слоя с учетом
его прозрачности.
Рисунок 5. Изображение,
подготовленное в Photoshop для экспорта в GIF89a с сохранением
прозрачности
Вы, вероятно, знаете, что Photoshop позволяет
реализовать частичную прозрачность - в частности, плавный переход
непрозрачных областей в прозрачные (обратите внимание на тень от
шарика на рис.
5). Скажем, дав команду Select|Feather перед выносом выделенных
объектов в отдельный слой, вы получите размытые края выделения,
постепенно переходящие в прозрачный фон. И несмотря на то, что
формат GIF предусматривает для пикселов изображения только две
градации - абсолютную прозрачность либо абсолютную непрозрачность, -
Adobe Photoshop с помощью все той же диффузии способен симулировать
эффект частичной прозрачности в GIF-файле. Так, экспортировав в
GIF89a изображение, показанное на рис. 5,
мы получим по краям тени "диффузную прозрачность" - смесь прозрачных
и непрозрачных пикселов, плавно переходящую в стопроцентно
прозрачный фон.