У этого термина существуют и другие значения, см.
ICO.
ICO (Windows icon) — формат хранения файлов значков в Microsoft Windows.
Формат ICO аналогичен формату CUR (Windows cursors), предназначенному для хранения курсоров. Отличие состоит в численном значении одного поля в заголовочной структуре и интерпретации значений двух других полей этой же структуры.
Один ICO-файл содержит один или несколько значков разных размеров и разрешений. Размер значка может быть любым, но наиболее употребимы квадратные значки со стороной 16, 32 и 48 пикселей. Также используются значки с размером 24, 40, 60, 72, 92, 108, 128 пикселей.
Значки бывают в естественном цвете (True Color, глубина цвета 24 бит), High Color (глубина цвета 16 бит) или с фиксированной палитрой (из двухсот пятидесяти шести, шестнадцати или всего из двух цветов). В этом случае число, соответствующее каждому пикселю, указывает не на цвет, а на номер цвета в палитре.
По своей структуре изображения в файле ICO наиболее близки к BMP, но принципиально отличаются от них наличием дополнительного изображения — маски, накладываемой на задний план при помощи операции побитового «И», что позволяет реализовать (полную) прозрачность рисунка. Последующее наложение основного изображения с помощью «исключающего ИЛИ» может даже дать «инверсные» пиксели в тех местах, где задний план не был замаскирован.
Кроме того, начиная с Windows XP поддерживаются 32-битные значки — каждому пикселу соответствует 24-бита цвета и 8-битный альфа-канал, позволяющий реализовать 256 уровней частичной прозрачности. С помощью альфа-канала можно отображать значки со сглаженными (размытыми) краями и тенью, сочетающимися с любым фоном; маска в этом случае игнорируется.
Начиная с Windows Vista, формат поддерживает размеры значков более 256 пикселей на сторону и сжатие с помощью формата PNG. В этом случае маска не содержится в файле отдельно, а генерируется автоматически из альфа-канала PNG изображения.[2]
Формат файла
Файл состоит из заголовка фиксированной длины, каталога информации о изображениях и непосредственно изображений.
Заголовок
Заголовок имеет размер 6 байт:
Поле
|
Смещение (в байтах)
|
Размер (в байтах)
|
Описание
|
reserved
|
0
|
2
|
Зарезервировано. Всегда 0 .
|
type
|
2
|
2
|
Тип файла:
1 для значков (.ICO)
2 для курсоров (.CUR)
Иные значения недопустимы.
|
count
|
4
|
2
|
Количество изображений в файле, минимум 1 .
|
Каталог информации об изображениях
Представляет собой последовательные записи фиксированного размера (16 байт), следующие одна за другой. Количество записей определяется полем count
заголовка.
Часть полей может содержать 0 и легко получается из других данных; например, если изображение не хранится в формате PNG, тогда количество битов на пиксель рассчитывается на основе информации о размере растра, а также его ширине и высоте.
Поле
|
Смещение
|
Размер (в байтах)
|
Описание
|
width
|
0
|
1
|
Указывает ширину изображения в точках. Может принимать значения от 0 до 255 . Если указано 0, то изображение имеет ширину 256 точек или более.
|
height
|
1
|
1
|
Указывает высоту изображения в точках. Может принимать значения от 0 до 255 . Если указано 0, то изображение имеет высоту 256 точек или более.
|
colors
|
2
|
1
|
Указывает количество цветов в палитре изображения. Для полноцветных значков должно быть 0.
|
reserved
|
3
|
1
|
Зарезервировано. Должно быть 0.
|
planes
|
4
|
2
|
- В .ICO определяет количество плоскостей. Может быть 0 или 1.
- В .CUR определяет горизонтальную координату «горячей точки» в пикселях относительно левого края изображения.
|
bpp
|
6
|
2
|
- В .ICO определяет количество битов на пиксель (bits-per-pixel). Это значение может быть 0.
- В .CUR определяет вертикальную координату «горячей точки» в пикселях относительно верхнего края изображения.
|
size
|
8
|
4
|
Указывает размер растра в байтах
|
offset
|
12
|
4
|
Указывает абсолютное смещение структуры BITMAPINFOHEADER или данных PNG в файле.
|
См. также
Примечания
Ссылки