Формат файла ICO - это формат файла изображения для компьютерных значков в Microsoft Windows . Файлы ICO содержат одно или несколько небольших изображений с разными размерами и глубиной цвета , поэтому их можно масштабировать соответствующим образом. В Windows все исполняемые файлы , отображающие значок для пользователя на рабочем столе, в меню «Пуск» или в проводнике Windows, должны содержать значок в формате ICO.
Расширение имени файла | .ico |
---|---|
Тип интернет-СМИ | image/x-icon [1] (но см. Ниже ) |
Единый идентификатор типа (UTI) | com.microsoft.ico |
Разработано | Microsoft |
Тип формата | Формат графического файла для компьютерных иконок |
Контейнер для | BMP и PNG |
Расширен до | CUR |
Расширение имени файла | .cur |
---|---|
Тип интернет-СМИ | изображение / vnd.microsoft.icon |
Единый идентификатор типа (UTI) | com.microsoft.cur |
Разработано | Microsoft |
Тип формата | Формат графического файла для курсоров мыши |
Контейнер для | BMP |
Расширен с | ICO |
Формат файла CUR - это почти идентичный формат файла изображения для неанимированных курсоров в Microsoft Windows. Единственные различия между этими двумя форматами файлов - это байты, используемые для их идентификации, и добавление точки доступа в заголовок формата CUR; горячая точка определяется как смещение в пикселях (в координатах x, y) от верхнего левого угла изображения курсора, на которое пользователь фактически указывает указателем мыши.
История
Иконки, представленные в Windows 1.0, имели размер 32 × 32 пикселя и были монохромными. [2] Поддержка 16 цветов была введена в Windows 3.0 . [ необходима цитата ]
Win32 представила поддержку хранения изображений значков до 16,7 миллиона цветов (TrueColor) и размером до 256x256 пикселей. [3] Windows 95 также представила новый механизм Device Independent Bitmap (DIB). [4] Тем не менее, 256 цветов было глубиной цвета значков по умолчанию в Windows 95. Можно было включить 65535 цветных (Highcolor) значков, изменив значение Shell Icon BPP в реестре [3] [5] или купив Microsoft Plus ! для Windows 95. Значение размера значка оболочки позволяет использовать значки большего размера вместо значков 32 × 32, а значение размера значка малого значка оболочки позволяет использовать нестандартные размеры вместо значков 16 × 16. [3] Таким образом, в одном файле значков можно хранить изображения любого размера от 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 в оболочке. [3] Microsoft рекомендует для Windows XP только значки размером до 48 × 48 пикселей. [6] Windows XP может уменьшить размер значков до 256 × 256 и более, если более близкий размер изображения недоступен. [3]
Windows Vista добавила в проводник Windows вид значков размером 256 × 256 пикселей, а также поддержала сжатый формат PNG . Хотя сжатие не требуется, Microsoft рекомендует хранить все значки размером 256 × 256 в файлах ICO в формате PNG, чтобы уменьшить общий размер файла. [7] Windows Vista Explorer поддерживает плавное масштабирование значков до нестандартных размеров, которые отображаются на лету, даже если изображение такого размера отсутствует в файле значков. Оболочка Windows Vista добавляет ползунок для «увеличения» и уменьшения размеров значков. Пользователям, использующим более высокое разрешение и режимы с высоким разрешением, рекомендуется использовать более крупные форматы значков (например, 256 × 256). [7]
Тип MIME
В то время как IANA -registered тип MIME для ICO файлов image/vnd.microsoft.icon
, [8] он был представлен на IANA в 2003 году третьей стороной и не распознается программным обеспечением Microsoft, которая использует image/x-icon
вместо этого. [9] типы Ошибочные image/ico
, image/icon
, text/ico
и application/ico
также были замечены в использовании. [8]
Структура ресурса значка
Файл ICO или CUR состоит из структуры ICONDIR («Каталог значков»), содержащей структуру ICONDIRENTRY для каждого изображения в файле, за которой следует непрерывный блок всех данных растрового изображения изображения (которые могут быть в любом формате Windows BMP , за исключением структуры BITMAPFILEHEADER, или в формате PNG , хранящемся целиком). [3]
Изображения с глубиной цвета менее 32 бит следуют определенному формату: изображение кодируется как одно изображение, состоящее из цветовой маски («маска XOR») вместе с маской непрозрачности («маска И»). [6] [ неудачная проверка ] Маска XOR должна предшествовать маске AND внутри данных битовой карты; если изображение хранится в восходящем порядке (что, скорее всего, так и есть), маска XOR будет нарисована под маской AND. Маска И составляет 1 бит на пиксель, независимо от глубины цвета, указанной в заголовке BMP, и указывает, какие пиксели являются полностью прозрачными, а какие - полностью непрозрачными. Маска XOR соответствует глубине цвета, указанной в заголовке BMP, и определяет числовое значение цвета или палитры для каждого пикселя. Вместе маска AND и маска XOR создают непрозрачное изображение, представляющее изображение с 1-битной прозрачностью; они также позволяют инвертировать фон. Высота изображения в структуре ICONDIRENTRY файла ICO / CUR принимает размеры предполагаемого изображения (после объединения масок), тогда как высота в заголовке BMP принимает высоту двух изображений маски вместе (до того, как они составлены). Следовательно, каждая маска должна иметь одинаковые размеры, а высота, указанная в заголовке BMP, должна быть точно вдвое больше высоты, указанной в структуре ICONDIRENTRY. [ необходима цитата ]
32-битные изображения (включая 32-битные изображения BMP в формате BITMAPINFOHEADER [Примечания 1] ) - это, в частности, 24-битные изображения с добавлением 8-битного канала для альфа-композитинга . Таким образом, в 32-битных изображениях маска И не требуется, но рекомендуется к рассмотрению. Windows XP и выше будет использовать 32-битное изображение в режиме меньшего, чем истинный цвет, путем построения маски И на основе альфа-канала (если он уже не находится в изображении), если 24-битная версия изображения не предоставляется в файл ICO / CUR. Однако более ранние версии Windows интерпретируют все пиксели со 100% непрозрачностью, если с изображением не добавлена маска И. Предоставление настраиваемой маски И также позволит автору значка настраивать и подсказывать. Даже если маска И не указана, если изображение находится в формате Windows BMP, заголовок BMP все равно должен указывать удвоенную высоту.
Контур
Все значения в файлах ICO / CUR представлены в порядке байтов с прямым порядком байтов.
Заголовок
Компенсировать# | Размер | Цель |
---|---|---|
0 | 2B | Зарезервированный. Всегда должен быть 0. |
2 | 2B | Определяет тип изображения: 1 для изображения значка (.ICO), 2 для изображения курсора (.CUR). Другие значения недействительны. |
4 | 2B | Задает количество изображений в файле. |
Структура каталога изображений
Изображение # 1 | Запись на первое изображение |
Изображение # 2 | Вход для второго изображения |
... | |
Изображение #n | Запись последнего изображения |
Компенсировать# | Размер | Цель |
---|---|---|
0 | 1B | Задает ширину изображения в пикселях. Может быть любым числом от 0 до 255. Значение 0 означает, что ширина изображения составляет 256 пикселей. |
1 | 1B | Задает высоту изображения в пикселях. Может быть любым числом от 0 до 255. Значение 0 означает, что высота изображения составляет 256 пикселей. |
2 | 1B | Задает количество цветов в цветовой палитре. Должно быть 0, если изображение не использует цветовую палитру. |
3 | 1B | Зарезервированный. Должно быть 0. [Примечания 2] |
4 | 2B | В формате ICO: задает цветовые плоскости. Должно быть 0 или 1. [Примечания 3] В формате CUR: задает горизонтальные координаты горячей точки в количестве пикселей слева. |
6 | 2B | В формате ICO: указывает количество бит на пиксель. [Примечания 4] В формате CUR: задает вертикальные координаты горячей точки в пикселях сверху. |
8 | 4B | Определяет размер данных изображения в байтах |
12 | 4B | Задает смещение данных BMP или PNG от начала файла ICO / CUR |
Ссылочные данные изображения
Все данные изображения, на которые ссылаются записи в каталоге изображений, идут сразу после каталога изображений. Обычно их хранят в том же порядке, что и в каталоге изображений.
Напомним, что если изображение хранится в формате BMP, оно должно исключать открывающую структуру BITMAPFILEHEADER, тогда как если оно хранится в формате PNG, оно должно быть сохранено целиком.
Обратите внимание, что высота изображения BMP должна быть вдвое больше высоты, объявленной в каталоге изображений. Вторая половина растрового изображения должна быть маской И для существующих пикселей экрана с выходными пикселями, заданными формулой Output = (Existing AND Mask) XOR Image. Установите маску на ноль везде для чистой перезаписи.
Формат PNG
Возможность чтения изображений PNG из изображений формата ICO и CUR появилась в Windows Vista . [7] Изображение PNG может быть сохранено в изображении так же, как это сделано для стандартного изображения формата Windows BMP, за исключением того, что изображение PNG должно храниться целиком, вместе с его заголовком файла.
Библиотека иконок
Библиотека значок представляет собой способ упаковки Windows , иконки. Обычно это 16-битный новый исполняемый файл или 32-битный переносимый исполняемый двоичный файл с расширением .ICL, где ресурсы значков являются упакованными значками. Windows Vista и более поздние версии не поддерживают просмотр значков из 16-разрядных ( новых исполняемых файлов) файлов. [10]
Смотрите также
- Формат изображения значка Apple
- Формат файла BMP
- Значок компьютера
- Фавикон
- Список программного обеспечения для иконок
Заметки
- ^ Классический формат растрового изображения BITMAPINFOHEADER поддерживает хранение изображений с 32 битами на пиксель. При сохранении в виде отдельного файла .BMP «старший байт в каждом [пикселе] не используется». Однако, когда эти же данные хранятся в файле ICO или CUR, Windows XP (первая версия Windows, поддерживающая файлы ICO / CUR с прозрачностью более 1 бита) и выше интерпретируют этот байт как альфа-значение.
- ^ Хотя в технической документации Microsoft указано, что это значение должно быть равно нулю, кодировщик значков, встроенный в .NET (System.Drawing.Icon.Save), устанавливает это значение на 255. Похоже, что операционная система полностью игнорирует это значение.
- ^ Установка цветовых плоскостей на 0 или 1 обрабатывается операционной системой эквивалентно, но если цветовые плоскости установлены выше 1, это значение следует умножить на количество битов на пиксель, чтобы определить окончательную глубину цвета изображения. Неизвестно, устойчивы ли различные версии операционной системы Windows к разным значениям цветовой плоскости.
- ^ Число битов на пиксель может быть установлено равным нулю, но это можно сделать из других данных; в частности, если растровое изображение не сжато PNG, то количество битов на пиксель может быть вычислено на основе длины данных растрового изображения относительно размера изображения. Если растровое изображение сжато PNG, биты на пиксель сохраняются в данных PNG. Неизвестно, содержат ли различные версии операционной системы Windows логику для вывода битовой глубины для всех возможностей, если это значение установлено равным нулю.
Рекомендации
- ^ "Стандарт сниффинга MIME" . WHATWG. 2014-01-17. Архивировано 27 марта 2014 года . Проверено 18 апреля 2014 .
- ^ Фекете, Дьердь (11 марта 2009 г.). «Дизайн интерфейса операционной системы между 1981-2009 годами» . Депо веб-дизайнеров . Проверено 6 июня 2011 года .
- ^ а б в г д е Хорник, Джон (29 сентября 1995 г.). «Иконы» . Технические статьи об интерфейсе пользователя Windows ( MSDN ) . Корпорация Microsoft . Проверено 5 июня 2011 года .
- ^ «Компоненты архитектуры Windows 95» . Microsoft TechNet . Корпорация Microsoft . Проверено 6 июня 2011 года .
- ^ «Шелл Икона БПП» . Справочник по реестру Windows 2000 (Microsoft TechNet) . Корпорация Microsoft . Проверено 6 июня 2011 года .
- ^ а б «Создание иконок Windows XP» . Технические статьи о Windows XP (MSDN) . Корпорация Майкрософт. Июль 2001 . Проверено 5 июня 2011 года .
- ^ а б в «Иконы» . Эволюция формата файлов ICO, часть 4: изображения PNG . Раймонд Чен - MSFT . Проверено 22 октября 2010 года .
- ^ а б Мясник, Саймон (3 сентября 2003 г.). "изображение / vnd.microsoft.icon" . Дата обращения 3 января 2014 .
- ^ Лоуренс, Эрик (11 февраля 2011 г.). «Список незначительных изменений IE9 RC» . IEInternals . Блоги MSDN . Проверено 20 авг 2016 . См. Второй комментарий.
- ^ Чен, Раймонд (май 2008 г.). «Конфиденциальность Windows - 16-битные значки уже давно устарели» . Журнал TechNet . Проверено 1 июля 2011 года .
Внешние ссылки
- Включить значки High Color в Windows 95 и более поздних версиях
- Улучшение графического интерфейса Java с помощью значков Windows
- Рекомендации по разработке значков для значков Windows Vista
- Иконки (Техническая статья Microsoft 1995 г.)
- Эволюция формата файлов ICO ( Часть 1 , Часть 2 , Часть 3 , Часть 4 )