Как Windows действительно выбирает правильное изображение из ресурса? - PullRequest
1 голос
/ 08 марта 2011

Я прочитал следующее в MSDN :

После выбора RT_GROUP_ICON необходимо выбрать и извлечь отдельное изображение значка или ресурс RT_ICON.Опять же, если существует только один ресурс RT_ICON для рассматриваемой группы, выбор тривиален.Однако, если в группе присутствует несколько изображений, применяются следующие правила выбора:

  1. Выбирается изображение, наиболее близкое по размеру к запрошенному размеру.

  2. Если присутствуют два или более изображения такого размера, выбирается то, которое соответствует глубине цвета дисплея.

  3. Если ни один из них точно не соответствует глубине цвета дисплея, Windows выбирает изображение с наибольшей глубиной цвета, не превышая глубину цвета дисплея.

  4. Если все согласованные по размеру изображения превышают глубину цвета дисплея, выбирается изображение с наименьшей глубиной цвета.

  5. Windows обрабатывает все глубины цвета 8 или более пикселей на дюйм как равные.Например, не имеет смысла иметь изображение размером 16x16 256 цветов и изображение 16x16 16bpp в одном ресурсе - Windows просто выберет первое, с которым сталкивается.

  6. Когда дисплей работает в режиме 8bpp, Windows предпочтет значок из 16 цветов вместо значка из 256 цветов и отобразит все значки с использованием системной палитры по умолчанию.

Но я также прочитал , что разработчики должны предоставлять 8-битные и 24-битные, 8-битные и 4-битные версии каждого размера для поддержки различной глубины.Если № 5 верно, зачем мне 8-битная версия?И если № 5 верно, как № 6 применяется?

Как Windows действительно выбирает?Действительно ли имеет значение включать все эти глубины цвета, если окна обрабатывают их одинаково?

1 Ответ

1 голос
/ 08 марта 2011

Если № 5 истинно, важен порядок значков:

  • 32x32x16bpp << Будет выбран, если дисплей> = 16bpp
  • 32x32x8bpp << Будет выбран, если дисплей <16bpp и может быть разработан, чтобы выглядеть лучше, чем автоматически преобразованный значок истинного цвета </li>

(я знаю, что используемый мной редактор иконок автоматически сортирует значки по размеру и глубине цвета при сохранении)

Если ваше приложение работает в

Я почти уверен, что # 6 не соответствует действительности, IIRC, дополнительный пакет для Win95, позволил оболочке использовать 256 цветов по сравнению с 16 цветными значками по умолчанию.

Vista добавлена ​​ LoadIconMetric и она пытается уменьшить иконки с лучшим алгоритмом исходного кода.

В наши дни большинство людей запускают @ 32bpp, поэтому глубина цвета и цветовые иконки 16/256, вероятно, уже не так важны ...

...