Векторные изображения.
Формат ICO.
Особый формат для хранения пиктограмм. Отличие таких изображений от других:
1. Их никогда не уплотняют.
2. В таком формате содержится 2 битовых карты, то есть иконка должна быть дублирована для цветного и монохромного.
Файл ICO имеет следующую структуру:
1. Запись длиной 2 байта. Заполнена нулями.
2. Запись длиной 2 байта. Имеет значение 1 и говорит о том, что это пиктограмма.
3. Запись длиной 2 байта. Количество изображений в файле. Можно хранить несколько пиктограмм. Если стоит 1, то одно изображение в цветном и в чёрно-белом.
4. Запись. Ширина пиктограммы в пикселах.
5. Запись. Высота пиктограммы в пикселах.
6. Запись (1 байт). Количество цветов.
7. Имеется 5 резервных байт.
8. Запись 4 байта. Pixel Array. Массив пикселов.
9. Запись 4 байта. Смещение в байтах до конкретного изображения.
10. Кусок в 4 байта для дополнительных данных.
На описание таблицы цветов используется 40 байт. Их 16, каждая по 4 байта. Палитра заложена избыточная. Для разнообразия выделяется 16 цветов. Далее идёт
512 байт – XOR-описание цветной палитры.
128 байт – AND-описание монохромной пиктограммы.
Windows принципиально не работает с векторными изображениями. Это является крупным недостатком. Чтобы как-то это сгладить предусмотрен WWF (Windows Wector File) формат. Данные можно хранить в таком формате и отправлять на векторные устройства вывода. Изменять ничего нельзя. В таком формате записана последовательность вызовов функций GDI.
Метафайл состоит из заголовка и области данных. Заголовок имеет следующую структуру.
2 байта – тип метафайла.
2 байта – длина этого заголовка.
2 байта – указана версия Windows.
4 байта – длина файла в словах.
2 байта – максимальное количество элементов.
4 байта – максимальное количество элементов.
Подтипом метафайла подразумевается вовсе не тип каманд, а где расположен этот метафайл. Кодируется 1 или 2. 1 – в основной памяти.
2 – метафайл сам в себе.
Записи в метафайл – это своего рода команды. Их более чем 70 типов. Все имеют однотипную структуру.
Первая запись – длина 4 байта. Длина записи этой команды в словах.
Вторая запись – длина 2 байта. Эта запись представляет собой записанные 16-ричным кодом от функции.
Идёт поле с параметрами, причём на каждый из параметров отводится 2 байта. Нужно быть осторожным при использовании цветов. Здесь заложен 32-битный формат команд. Обращаться к цвету по индексу или абсолютно определяется это старшим байтом 32-разрядной записи.
0 – абсолютная
1 – индексная
24 бита, которые следуют за старшим. При 0 содержат абсолютное значение. Красный, зелёный, синий – на каждое из которых отводится 1 байт.
В Windows работать с векторным не можем, а хранить и передавать мы можем через WWF.
Как ни парадоксально, но в Windows доступны векторные шрифты. Растровые шрифты при масштабировании становятся очень плохо выглядящими. При работе с векторными шрифтами нужно знать специфические требования:
– Гарнитуры.
– Начертание – варианты внутри одной гарнитуры. Описываются двумя словами. 1 – насыщенность шрифта, 2 – угол наклона.
1. Насыщенность – светлый, полужирный, жирный.
2. Начертание. Прямой, наклонный и курсив. Может добавляться третье слово: контурный или оттенёный шрифт.
Измеряется в кеглях. Кегли измеряются в пунктах (10, 12, 14 и так далее). Пункт равен 1/72 дюйма.
Только в последние годы стали расставлять границы. Когда такие шрифты переводятся в растровый вид и выводятся на принтер. Ширина символов на матричном принтере одинакова.