Расширение имени файла | . ico |
---|---|
Тип интернет-СМИ | image/x-icon (но см. ниже) |
Единый идентификатор типа (UTI) | com.microsoft.ico |
Разработано | Microsoft |
Тип формата | Формат графического файла для компьютерных иконок |
Контейнер для | BMP и PNG |
Расширен до | CUR |
Расширение имени файла | .cur |
---|---|
Тип интернет-СМИ | изображение / vnd.microsoft.icon |
Единый идентификатор типа (UTI) | com.microsoft.cur |
Разработано | Microsoft |
Тип формата | Формат графического файла для курсоров мыши |
Контейнер для | BMP |
Расширен с | ICO |
Формат файла ICO - это формат файла изображения для компьютерных значков в Microsoft Windows. Файлы ICO содержат одно или несколько небольших изображений с разными размерами и глубиной цвета, поэтому их можно масштабировать соответствующим образом. В Windows все исполняемые файлы, отображающие значок для пользователя на рабочем столе, в меню «Пуск» или в проводнике Windows, должны содержать значок в формате ICO.
Формат файла CUR - это почти идентичный формат файла изображения для неанимированных курсоров в Microsoft Windows. Единственные различия между этими двумя форматами файлов - это байты, используемые для их идентификации, и добавление точки доступа в заголовок формата CUR; горячая точка определяется как смещение в пикселях (в координатах x, y) от верхнего левого угла изображения курсора, на которое пользователь фактически указывает указателем мыши.
Иконки, представленные в Windows 1.0, имели размер 32 × 32 пикселя и были монохромными. Поддержка 16 цветов была введена в Windows 3.0.
Win32 представила поддержку хранения изображений значков до 16,7 миллиона цветов (TrueColor) и размером до 256x256 пикселей. Windows 95 также представила новый механизм Device Independent Bitmap (DIB). Тем не менее, 256 цветов было глубиной цвета значков по умолчанию в Windows 95. Можно было включить 65535 цветных (Highcolor) значков, изменив значение Shell Icon BPP в реестре или купив Microsoft Plus! для Windows 95. Значение размера значка оболочки позволяет использовать значки большего размера вместо значков 32 × 32, а значение размера значка малого значка оболочки позволяет использовать нестандартные размеры вместо значков 16 × 16. Таким образом, один файл значка может хранить изображения любого размера от 1 × 1 до 256 × 256 пикселей (включая неквадратные размеры) с 2 (редко используются), 16, 256, 65 535 или 16,7 миллионами цветов; но оболочка не могла отображать значки очень большого размера. Область уведомлений панели задач Windows по умолчанию была ограничена 16 цветными значками до Windows Me, когда она была обновлена для поддержки значков с высоким цветом.
В Windows XP добавлена поддержка 32-битных цветных (16,7 миллиона цветов плюс прозрачность альфа-канала) изображений значков, что позволяет рисовать в значке полупрозрачные области, такие как тени, сглаживание и эффекты, похожие на стекло. Windows XP по умолчанию использует значки размером 48 × 48 пикселей в проводнике Windows. Windows XP может быть вынуждена использовать значки размером до 256 × 256, изменив значение размера значка оболочки, но это приведет к увеличению масштаба всех значков 32 × 32 в оболочке. Microsoft рекомендует для Windows XP только значки размером до 48 × 48 пикселей. Windows XP может уменьшить размер значков 256 × 256 и более, если не доступен более близкий размер изображения.
Windows Vista добавила в проводник Windows вид значков размером 256 × 256 пикселей, а также поддержала сжатый формат PNG. Хотя сжатие не требуется, Microsoft рекомендует хранить все значки размером 256 × 256 в файлах ICO в формате PNG, чтобы уменьшить общий размер файла. Проводник Windows Vista поддерживает плавное масштабирование значков до нестандартных размеров, которые отображаются на лету, даже если изображение такого размера отсутствует в файле значков. Оболочка Windows Vista добавляет ползунок для «увеличения» и уменьшения размеров значков. Пользователям, использующим более высокое разрешение и режимы с высоким разрешением, рекомендуется использовать более крупные форматы значков (например, 256 × 256).
Хотя зарегистрированный IANA тип MIME для файлов ICO является image/vnd.microsoft.icon
зарегистрированным в IANA, он был передан в IANA в 2003 году третьей стороной и не распознается программным обеспечением Microsoft, которое image/x-icon
вместо этого использует. Ошибочные типы image/ico
, image/icon
, text/ico
и application/ico
также были замечены в использовании.
Файл ICO или CUR состоит из структуры ICONDIR («Каталог значков»), содержащей структуру ICONDIRENTRY для каждого изображения в файле, за которой следует непрерывный блок всех данных растрового изображения изображения (которые могут быть в любом формате Windows BMP, за исключением структуры BITMAPFILEHEADER, или в формате PNG, хранящемся целиком).
Изображения с глубиной цвета менее 32 бит следуют определенному формату: изображение кодируется как одно изображение, состоящее из цветовой маски («маска XOR») вместе с маской непрозрачности («маска И»). Маска XOR должна предшествовать маске AND внутри данных растрового изображения; если изображение хранится в восходящем порядке (что, скорее всего, так и есть), маска XOR будет нарисована под маской AND. Маска И составляет 1 бит на пиксель, независимо от глубины цвета, указанной в заголовке BMP, и указывает, какие пиксели являются полностью прозрачными, а какие - полностью непрозрачными. Маска XOR соответствует глубине цвета, указанной в заголовке BMP, и определяет числовое значение цвета или палитры для каждого пикселя. Вместе маска AND и маска XOR создают непрозрачное изображение, представляющее изображение с 1-битной прозрачностью; они также позволяют инвертировать фон. Высота изображения в структуре ICONDIRENTRY файла ICO / CUR принимает размеры предполагаемого изображения (после объединения масок), тогда как высота в заголовке BMP принимает высоту двух изображений маски вместе (до того, как они составлены). Следовательно, каждая маска должна иметь одинаковые размеры, а высота, указанная в заголовке BMP, должна быть точно вдвое больше высоты, указанной в структуре ICONDIRENTRY.
32-битные изображения (включая 32-битные изображения BMP в формате BITMAPINFOHEADER) - это, в частности, 24-битные изображения с добавлением 8-битного канала для альфа-композитинга. Таким образом, в 32-битных изображениях маска И не требуется, но рекомендуется к рассмотрению. Windows XP и выше будет использовать 32-битное изображение в режиме меньшего, чем истинный цвет, путем построения маски И на основе альфа-канала (если он уже не находится в изображении), если 24-битная версия изображения не предоставляется в файл ICO / CUR. Однако более ранние версии Windows интерпретируют все пиксели со 100% непрозрачностью, если с изображением не указана маска И. Предоставление настраиваемой маски И также позволит автору значка настраивать и подсказывать. Даже если маска И не указана, если изображение находится в формате Windows BMP, заголовок BMP все равно должен указывать удвоенную высоту.
Все значения в файлах ICO / CUR представлены в порядке байтов с прямым порядком байтов.
Заголовок
Компенсировать# | Размер | Цель |
---|---|---|
0 | 2 | Зарезервированный. Всегда должен быть 0. |
2 | 2 | Определяет тип изображения: 1 для изображения значка (.ICO), 2 для изображения курсора (.CUR). Другие значения недействительны. |
4 | 2 | Задает количество изображений в файле. |
Структура каталога изображений
Изображение # 1 | Запись на первое изображение |
Изображение # 2 | Вход для второго изображения |
. .. | |
Изображение #n | Запись последнего изображения |
Компенсировать# | Размер | Цель |
---|---|---|
0 | 1 | Задает ширину изображения в пикселях. Может быть любым числом от 0 до 255. Значение 0 означает, что ширина изображения составляет 256 пикселей. |
1 | 1 | Задает высоту изображения в пикселях. Может быть любым числом от 0 до 255. Значение 0 означает, что высота изображения составляет 256 пикселей. |
2 | 1 | Задает количество цветов в цветовой палитре. Должно быть 0, если изображение не использует цветовую палитру. |
3 | 1 | Зарезервированный. Должно быть 0. |
4 | 2 | В формате ICO: определяет цветовые плоскости. Должен быть 0 или 1. В формате CUR: задает горизонтальные координаты горячей точки в количестве пикселей слева. |
6 | 2 | В формате ICO: указывает количество бит на пиксель. В формате CUR: задает вертикальные координаты горячей точки в пикселях сверху. |
8 | 4 | Определяет размер данных изображения в байтах |
12 | 4 | Задает смещение данных BMP или PNG от начала файла ICO / CUR |
Ссылочные данные изображения
Все данные изображения, на которые ссылаются записи в каталоге изображений, идут сразу после каталога изображений. Обычно их хранят в том же порядке, что и в каталоге изображений.
Напомним, что если изображение хранится в формате BMP, оно должно исключать открывающую структуру BITMAPFILEHEADER, тогда как если оно хранится в формате PNG, оно должно быть сохранено целиком.
Обратите внимание, что высота изображения BMP должна быть вдвое больше высоты, объявленной в каталоге изображений. Вторая половина растрового изображения должна быть маской И для существующих пикселей экрана с выходными пикселями, заданными формулой Output = (Existing AND Mask) XOR Image. Установите маску на ноль везде для чистой перезаписи.
Возможность чтения изображений PNG из изображений в формате ICO и CUR появилась в Windows Vista. Изображение PNG может быть сохранено в изображении так же, как это сделано для стандартного изображения формата Windows BMP, за исключением того, что изображение PNG должно храниться целиком, с его заголовком файла.
Библиотека значок представляет собой способ упаковки Windows, иконки. Обычно это 16-разрядный новый исполняемый файл или 32-разрядный двоичный файл Portable Executable с расширением.ICL, где ресурсы значков являются упакованными значками. Windows Vista и более поздние версии не поддерживают просмотр значков из 16-разрядных ( новый исполняемый файл) файлов.