| ||
Графика в стиле GIFСергей Болашов Вот уже тринадцать лет, как файлы с расширением GIF занимают свое законное место на наших винчестерах, а изображения, сжатые при помощи этого формата, то и дело мелькают на экранах наших мониторов. Постепенно «мигрировав» из любительских и полупрофессиональных графических программ в окна современных браузеров и мощные графические пакеты, этот формат стал одним из основных, если не сказать больше, — основным стандартом сжатия и передачи графических изображений в сети Интернет. И несмотря на то, что уже давно существуют намного более гибкие и функциональные форматы, он не собирается уступать «пальму первенства». Объяснить причины его высокой популярности не составит никакого труда: при всей простоте реализации GIF сочетает в себе набор таких функциональных возможностей, переоценить которые в плане сетевого обмена информацией очень и очень трудно. Ну и, кроме того, не зря же говорят: старый друг — лучше новых двух. Начать свое знакомство с этим, не побоюсь таких слов, замечательным во всех отношениях форматом, логично будет с его истории. Тем более что у GIF’а она самая что ни есть настоящая: в меру длинная, со множеством интересных и неожиданных поворотов, к тому же местами обросшая таким количеством слухов и пересудов, что напоминает скорее детективный роман, чем обыкновенный рассказ о развитии очередного графического стандарта. Вот ее сокращенный вариант. ИстокиЛет 15 назад было несколько крупных коммерческих on-line сетей, предоставлявших своим пользователям множество различных сервисов. В числе прочих ресурсов крупнейшей американской сети, принадлежавшей фирме CompuServe, была и громадная библиотека разнообразных изображений, открытая для публичного доступа (клиентам CompuServe, разумеется), и привлекавшая к себе большое количество пользователей. Читателей наверняка заинтересует, что же так привлекало пользователей к этой «свалке» картинок и фотографий? В этом явлении нет ни капли загадочности или сверхъестественности — это была обыкновенная «клубничка», развязные изображения полуголых, голых, и «»совсем голых» девиц и особей противоположного пола. И хотя качество этих рисунков сравнимо скорее с фотографией из дешевой пятнадцатикопеечной газеты (для примера на рис. 1 представлен типичный образец компьютерной графики того времени, правда, с намного более «мягким» содержанием), чем даже с сильно компрессированным JPEG’ом наших дней, пользователи сети CompuServe посещали библиотеку изображений с завидным упорством и регулярностью. Но время, проведенное в сети, было далеко не бесплатно, и поэтому все графические файлы, находящиеся в этом «скопище», были сжаты архиватором; и каждый раз, перед тем как просмотреть новые рисунки, их приходилось распаковывать, что, естественно, положительных эмоций ни у кого не вызывало. Ситуацию мог поправить только принципиально новый графический формат, реализующий эффективную схему сжатия.
Новинку оценили по достоинству — вскоре было очень нелегко найти не только приложение, обрабатывающее графические файлы и не поддерживающие GIF, но и изображения, не закодированные при помощи нового формата. Количество GIF-программ росло, как грибы в дождливую погоду, а пользователи сетей (сначала CompuServe, а затем и других — America Online, Prodigy) были столь довольны, что уже в 1989, то есть через два года, программисты CompuServe предприняли попытку усовершенствования формата. Он был основательно доработан, и позволял теперь создавать «прозрачные» изображения и простенькие мультяшки. Добавилась поддержка несложных анимационных последовательностей, появилась возможность хранения прозрачных областей изображения. И хотя в то время такие нововведения были поистине революционными, широкое распространение новая версия формата, именующаяся GIF89a, получила только в период бурного развития Интернета. В 1993 году фирма Unisys, обладавшая патентом на алгоритм сжатия LZW, обратилась к руководству CompuServe с предложением заключить лицензионное соглашение, и начать отчисления авторских гонораров (royalty). И хотя шаг этот был весьма логичен — ничем до сих пор не примечательный формат, популярный разве что у относительно небольшого количества художников и программистов, прямо на глазах превращался в неисчерпаемую «золотую жилу» — он не вызвал ничего, кроме гневных упреков и возмущений как со стороны пользователей CompuServe, так и весьма небольшой, но уже хорошо сплоченной интернет-общественности. Тогда против разработчика GIF’а был инициирован судебный процесс, в конце концов, все же проигранный им. 28 декабря 1994 года (а по некоторым источникам — 22 декабря) было заключено лицензионное соглашение, которое обязывало всех разработчиков, использующих в своем ПО GIF, выплачивать фирме Unisys авторские отчисления с каждого экземпляра проданного продукта. Кстати, это соглашение действительно и по сей день. Так ошибка программистов, которые в обязательном порядке должны были проверить патентную чистоту своих решений, но не сделали этого, чуть было не стала причиной гибели этого удивительного стандарта. К счастью, этого не случилось, даже наоборот, данная ошибка послужила толчком для создания нового, качественного, функционального и совершенного свободного графического формата — PNG. Но несмотря ни на отличную документированность, ни на ряд несомненных достоинств, ни даже на его полную свободу от каких-либо отчислений, PNG до сих пор так и не удалось получить такое же широкое распространение и признание, как бессменному и всегда популярному GIF’у. О том, что внутриФайлы формата GIF используются для хранения одного или нескольких изображений. В отличие от большинства растровых форматов, которые представляют все данные изображения одним непрерывным блоком, GIF использует потоки. Данные, представленные в этом формате, хранятся в виде небольших (порядка 256 байт) последовательностей, которые могут быть обработаны после того, как поступят из Сети. Такая организация дает неоспоримое преимущество: если изображения, сохраненные в других форматах, могут быть отображены только после полной их загрузки, то рисунки в формате GIF выводятся на экран по мере докачки. Кроме собственно данных изображения в файле хранится много другой информации, взгляните на его структуру (рис. 2). Как и любой другой файл, в котором находятся данные (не обязательно графические), он начинается с заголовка. Заголовок в формате GIF очень компактен и занимает всего 6 байт. Единственное его предназначение — указать программе тип файла, а также его версию. Кстати, если у вас возникнет необходимость самостоятельно проверить версию или формат файла, имеющего расширение GIF, то сделать это очень просто. Необходимо только открыть его любым текстовым редактором, и в начале документа вы увидите GIF87a или GIF89a.
В большинстве растровых форматов, таких, например, как BMP или PCX, заголовок содержит также размеры изображения. Стандарт GIF определяет для них другое местоположение — специальный блок информации под названием дескриптор логического экрана, следом за которым расположена глобальная цветовая таблица — не что иное, как палитра используемых цветов. Учитывая то, что в одном файле может храниться более одного изображения, и палитры их могут различаться, существуют также и необязательные локальные цветовые таблицы, в которых хранятся палитры вместе с данными соответствующих кадров. В каждом отдельном кадре может быть использовано не более 256 различных цветов. Количество кадров также ограничено, но это связано уже не с особенностями формата, а с возможностями файловой системы (ФС) той или иной ОС. К примеру, в среде Windows 9x OSR2 и выше, где используется 32-разрядная ФС, максимальный размер файла составляет 4 Гб, и чтобы преодолеть этот рубеж, необходимо использовать другие ОС, например, BeOS. Но создание громадных GIF-роликов с трехчасовым видеофильмом или любимым телесериалом лишено всякого смысла — для этого существует множество других, более подходящих форматов, таких как QuickTime, MPEG или Intel DVI. В GIF’ах также существуют блоки специальной информации — так называемые управляющие расширения или фреймы. Сведения, в них заложенные, определяют время демонстрации каждого кадра, наличие и размер локальных цветовых палитр, методы удаления изображения с экрана и другие параметры. Кроме того, в управляющем фрейме «Расширение комментариев» можно разместить произвольный текст, состоящий из символов первой половины таблицы ASCII (управляющие, псевдографика и символы английского алфавита). Чаще всего комментарии используются для указания имени автора и даты создания файла — довольно примитивный, но хоть какой-то способ защитить свои творения от несанкционированного копирования. С управляющими расширениями сталкивался, вероятно, каждый, кто хоть раз создавал новый или редактировал уже существующий анимированный GIF; только вот знакомство это происходило неявно, в виде передвижения ползунков и «кликов» мышью, а не в редактировании шестнадцатеричного кода. Одной из особенностей формата GIF является и то, что размеры и места различных блоков информации, будь-то данные изображения или управляющие расширения, не поддаются никакому предварительному вычислению. Это в значительной мере усложняет реализацию алгоритмов просмотра GIF-изображений. Кроме того, такая «блочность» делает невозможной «перемотку» — определить заранее, не прочитав полностью весь поток данных, количество кадров в файле, или переместиться на несколько кадров вперед не получится при всем желании. (Продолжение следует) Источник: http://www.mycomp.com.ua/
| ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |