ICO (формат файла)

редактировать
ICO
Расширение имени файла . ico
Тип интернет-СМИ image/x-icon(но см. ниже)
Единый идентификатор типа (UTI) com.microsoft.ico
Разработано Microsoft
Тип формата Формат графического файла для компьютерных иконок
Контейнер для BMP и PNG
Расширен до CUR
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) от верхнего левого угла изображения курсора, на которое пользователь фактически указывает указателем мыши.

СОДЕРЖАНИЕ
  • 1 История
  • 2 MIME-тип
  • 3 Структура ресурса значка
    • 3.1 Схема
    • 3.2 Формат PNG
  • 4 Библиотека иконок
  • 5 См. Также
  • 6 Примечания
  • 7 ссылки
  • 8 Внешние ссылки
История

Иконки, представленные в 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).

Тип MIME

Хотя зарегистрированный 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 представлены в порядке байтов с прямым порядком байтов.

Заголовок

Структура ICONDIR
Компенсировать# Размер Цель
0 2 Зарезервированный. Всегда должен быть 0.
2 2 Определяет тип изображения: 1 для изображения значка (.ICO), 2 для изображения курсора (.CUR). Другие значения недействительны.
4 2 Задает количество изображений в файле.

Структура каталога изображений

Изображение # 1 Запись на первое изображение
Изображение # 2 Вход для второго изображения
. ..
Изображение #n Запись последнего изображения
Запись изображения
ICONDIRENTRY структура
Компенсировать# Размер Цель
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

Возможность чтения изображений PNG из изображений в формате ICO и CUR появилась в Windows Vista. Изображение PNG может быть сохранено в изображении так же, как это сделано для стандартного изображения формата Windows BMP, за исключением того, что изображение PNG должно храниться целиком, с его заголовком файла.

Библиотека иконок

Библиотека значок представляет собой способ упаковки Windows, иконки. Обычно это 16-разрядный новый исполняемый файл или 32-разрядный двоичный файл Portable Executable с расширением.ICL, где ресурсы значков являются упакованными значками. Windows Vista и более поздние версии не поддерживают просмотр значков из 16-разрядных ( новый исполняемый файл) файлов.

Смотрите также
Примечания
  1. ^ Классический формат растрового изображения BITMAPINFOHEADER поддерживает хранение изображений с 32 битами на пиксель. При сохранении в виде отдельного файла.BMP «старший байт в каждом [пикселе] не используется». Однако, когда эти же данные хранятся в файле ICO или CUR, Windows XP (первая версия Windows, поддерживающая файлы ICO / CUR с прозрачностью более 1 бита) и выше интерпретируют этот байт как альфа-значение.
  2. ^ Хотя в технической документации Microsoft указано, что это значение должно быть равно нулю, кодировщик значков, встроенный в.NET (System.Drawing.Icon.Save), устанавливает это значение на 255. Похоже, что операционная система полностью игнорирует это значение.
  3. ^ Установка цветовых плоскостей на 0 или 1 обрабатывается операционной системой эквивалентно, но если цветовые плоскости установлены выше 1, это значение следует умножить на количество битов на пиксель, чтобы определить окончательную глубину цвета изображения. Неизвестно, устойчивы ли различные версии операционной системы Windows к разным значениям цветовой плоскости.
  4. ^ Число битов на пиксель может быть установлено равным нулю, но это можно сделать из других данных; в частности, если растровое изображение не сжато PNG, то количество битов на пиксель может быть вычислено на основе длины данных растрового изображения относительно размера изображения. Если растровое изображение сжато PNG, биты на пиксель сохраняются в данных PNG. Неизвестно, содержат ли различные версии операционной системы Windows логику для вывода битовой глубины для всех возможностей, если это значение установлено равным нулю.
использованная литература
внешние ссылки
Последняя правка сделана 2023-04-04 03:22:12
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте