ICO - это графический формат файла для значков компьютеров в Microsoft Windows. Файлы ICO содержат одно или несколько изображений с несколькими размерами и глубиной цвета, что позволяет масштабировать их соответствующим образом. В Windows все исполняемые файлы, которые располагаются на рабочем столе, в меню «Пуск» или в проводнике «Виндовс», должны иметь значок в формате ICO. Что такое представляет собой этот файл?
Например, это значок компьютера, который можно увидеть на рабочем столе в качестве пункта «Мой компьютер», а также изображение палитры, обозначающее программу Paint. Файлы ICO тесно связаны с файлами CUR. Чем они отличаются друг от друга?
Вам будет интересно:Автомобиль BMW X1: отзывы владельцев
Формат файла CUR - это почти идентичный графический формат для неанимированных курсоров в Microsoft Windows. Единственными отличиями между этими двумя разновидностями файлов являются байты, используемые для их идентификации, а также добавление точки доступа в заголовок CUR. Точка доступа определяется как смещение пикселя (в координатах x, y) из верхнего левого угла изображения курсора, где пользователь фактически указывает на мышь.
История формата: что такое ICO
Появились эти файлы еще в самых первых дистрибутивах «Виндовс». Со временем они заметно изменились.
Вам будет интересно:Virtualbox - общая папка: как подключить?
Значки, введенные в Windows 1.0, имели размер 32×32 пикселя и были монохромными. Поддержка 16 цветов была представлена в «Виндовс 3.0».
Win32 представила поддержку до 16,7 миллионов цветов (Truecolor) и 256x256 пикселей в размерах. Windows 95 также имела новый движок Device Independent Bitmap (DIB). Тем не менее, для значков в этой версии ОС использовались только 256 цветов. Можно было включить цвета 65535 (Highcolor), изменив значение значка командной строки Shell в реестре либо купив дополнение Microsoft Plus! для Windows 95.
Настройка Shell позволяла использовать более крупные значки вместо 32×32 в файле ICO. Что такое это означало? Один файл мог хранить в себе изображение любого размера от 1×1 до 256×256 пикселей (включая неквадратные размеры) с 2 (редко используемыми), 16, 256, 65535 или 16,7 миллионами цветов. Однако, на практике «оболочка» все равно не могла отображать значки большого цветового диапазона. Область уведомлений панели задач «Виндовс» была ограничена 16 оттенками по умолчанию до выхода Windows Me. Это означало, что независимо от настроек, иконки отображались на экране однотипно.
Последующее развитие
Вам будет интересно:Как проверить интернет-магазин на подлинность? Эффективные способы и рекомендации
Windows XP добавила поддержку 32-битного цвета (16,7 миллиона цветов плюс прозрачность альфа-канала), что позволило отображать в иконке такие полупрозрачные области, как тени, сглаживание и стеклянные эффекты. Этот дистрибутив ОС по умолчанию использовал значки 48×48 пикселей в «Проводнике» «Виндовс». Windows XP могла быть настроена таким образом, что все иконки начинали отображаться в размере 256×256 (с помощью изменения значений размера в Shell), но выборочное их редактирование было недоступно. Техподдержка Microsoft рекомендовала устанавливать размеры значков до 48×48 пикселей для версии XP.
В версии «Виста»
Windows Vista добавила возможность отображения иконок 256×256 пикселей в «Проводнике», а также поддержку сжатого формата PNG. Несмотря на то, что с технической точки зрения сжатие не требуется, поддержка Microsoft рекомендовала, чтобы все значки 256×256 в ICO-файлах сохранялись в формате PNG. Это позволяло уменьшить общий размер файла.
«Проводник» Windows Vista поддерживал плавное масштабирование иконок до нестандартных размеров, которые отображались «на лету», даже если в самом файле отсутствовало изображение. В этом дистрибутиве ОС был добавлен слайдер для «масштабирования» размеров значков в целом. При использовании режима с более высоким разрешением и DPI рекомендовалось использовать более крупные форматы иконок (например, 256×256).
Структура ресурса Icon
Формат хранения файлов значков в Microsoft Windows следующий. ICO или CUR состоит из структуры ICONDIR («Каталог значков»), содержащей набор данных ICONDIRENTRY для каждого изображения в файле, за которым следует непрерывный блок всех растровых картинок (которые могут быть в формате Windows BMP, исключая структуру BITMAPFILEHEADER, или в формате PNG, хранящуюся полностью).
Изображения с глубиной менее 32 бит соответствуют конкретному формату: картинка кодируется как одна, состоящая из цветной маски (XOR) вместе с маской непрозрачности. При этом первая должна предшествовать второй внутри данных растрового изображения. Если картинка хранится в порядке снизу вверх, маска XOR будет рисоваться ниже непрозрачной.
Размер последней составляет 1 бит на пиксель, независимо от глубины цвета, указанной в заголовке BMP. Маска непрозрачности указывает, какие пиксели полностью прозрачны, а какие нет. XOR соответствует глубине бита, обозначенной в заголовке BMP, и указывает числовое значение цвета или палитры для каждого пикселя. Вместе обе маски создают непрозрачное изображение, представляющее собой картинку с 1-битной прозрачностью; они также допускают инверсию фона. Высота изображения в структуре ICONDIRENTRY файлов ICO и CUR принимает значение предполагаемых его размеров (после компоновки масок), тогда как определение высоты в заголовке BMP определяется до их компоновки. По этой причине маски должны иметь одинаковые размеры, а высота, указанная в заголовке BMP, должна быть в два раза выше, чем в структуре ICONDIRENTRY.
Обновленная структура
Что такое ICO-32? Этот формат представляет собой 24-битное изображение с добавлением 8-битного канала для альфа-компоновки. Таким образом, в 32-битных изображениях маски не требуются, но все равно их использование рекомендуется для лучшего рассмотрения картинки.
Windows версии XP и выше начали использовать 32-битное изображение в режиме True color, построив маску AND на основе альфа-канала в случаях, когда 24-разрядная версия не представлена в файле ICO/CUR. Однако более ранние версии Windows интерпретируют все пиксели со 100% непрозрачностью, если только соответствующая маска не снабжена изображением.
Данные ссылочных изображений
Все данные изображения, которые ссылаются на записи в каталоге, поступают непосредственно из него. Обычная практика заключается в том, чтобы хранить их в том же порядке, что и в каталоге изображений.
Так, если изображение хранится в формате BMP, оно должно исключать открытую структуру BITMAPFILEHEADER, тогда как если оно хранится в формате PNG, она должна храниться целиком.
Количество битов
Классический формат растрового изображения BITMAPINFOHEADER поддерживает его сохранение с 32 битами на пиксель. При записи в качестве автономного файла BMP его разделение не используется. Однако когда эти же данные хранятся внутри файла ICO или CUR, Windows XP (первая версия «Виндовс» для поддержки формата файлов ICO/CUR с более чем 1 бит прозрачности) и выше интерпретирует этот байт как альфа-значение.
Хотя в технической документации Microsoft указано, что это значение должно быть нулевым, кодировщик значков, встроенный в .NET (System.Drawing.Icon.Save), устанавливает его как 255. Похоже, что операционная система на практике полностью игнорирует это значение.
Настройка цветных плоскостей на 0 или 1 обрабатывается эквивалентно операционной системой, но если они установлены выше 1, это значение должно быть умножено на биты на пиксель, чтобы определить окончательную глубину цвета изображения. Неизвестно, устойчивы ли разные версии операционной системы Windows к различным значениям цветовой плоскости.
Биты на пиксель могут быть установлены на ноль, но также могут быть выведены из других данных. В частности, если битмап не сжат PNG, тогда они могут быть рассчитаны на основе длины данных растрового изображения относительно его размера. Если битмап сжат PNG, биты на пиксель хранятся в данных этого файла.
Неизвестно, содержат ли различные версии операционной системы Windows формулу для определения глубины битов для всех возможностей, если это значение установлено на ноль.
PNG-формат
В Windows Vista появилась возможность читать изображения PNG из формата ICO и CUR. PNG может быть сохранено так же, как и стандартная иконка BMP в формате Windows Icon, за исключением того, что изображение оно должно храниться целиком вместе с его заголовком файла.
Icon library
Библиотека значков - это способ установки иконок Windows. Обычно это исполняемый 16-или 32-разрядный двоичный файл, имеющий расширение .ICL. Он имеет файлы значков, используемые как иконки. Windows Vista и более поздние версии не поддерживают просмотр иконок ниже 16-разрядных.
Это основная информация относительно формата файлов ICO (что это такое простыми словами). Попросту говоря, это иконка любого приложения или каталога в компьютере. Она представляет собой часть графического интерфейса и может обозначать любой файл, окно, каталог, драйвер устройства, элемент ОС и так далее. При нажатии на такую иконку происходит какое-либо ожидаемое действие.
Отдельно стоит отметить значки, содержащие только ссылки на приложения или данные, известные как ярлыки. Они тоже в настоящее время обозначаются файлами формата ICO. Чем же еще примечательна эта разновидность файлов?
Выше были указаны технические характеристики такой иконки в формате ICO, но какие картинки могут быть использованы в этих файлах? Определенные изображения являются встроенными в операционную систему и предлагаются по умолчанию. Однако ввиду их однотипности возникла тенденция по созданию различных значков или даже их групп, чем занимаются независимые художники.