![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему меняется палитра
alexnmsk © (2003-01-23 15:18:00)Делаю:
ExtractIconEx(cFile, IconIndex, pTheLargeIcon, pTheSmallIcon, 1);
TheLargeIcon.Handle := pTheLargeIcon^;
TheSmallIcon.Handle := pTheSmallIcon^;
TheSmallIcon.SaveToFile("c:\small.ico");
TheLargeIcon.SaveToFile("c:\large.ico");
при этом 256-цветные иконки становятся 16-цветными
nsvi (2003-01-28 03:02:00) [1]Одно время я занимался этой проблемой. Пришлось изучать структуру файла ICO и создавать иконку и сохранять минуя виндовские примочки просто как нетипизированный файл. Создавал массив байт, куда записывал инфу о пикселах и все, что надо.
Подробнее об этом я скинул на сайт http://forum.vingrad.ruв разделе FAQ, там статья о сохранении 256-цветных иконок. Там и исходник такой процедуры.
alexnmsk (2003-01-27 09:08:00) [2]Кто-нибудь может прислать конкретный код? Ну оч нужно..
alexnmsk (2003-01-24 16:01:00) [3]Может есть какой нибудь способ имея хендл иконки сразу сохранить ее в файл (минуя TIcon)?
REA (2003-01-24 15:15:00) [4]Еще есть TrueColor и XP - там спецэффекты, прозрачность, а разрешения вроде любые могут быть. Только TIcon все это не поддерживает. Переписать TIcon придется наверно или искать подходящий компонент.
alexnmsk (2003-01-24 14:39:00) [5]Мне сказали:
> файл значка может иметь несколько различных форматов
> (растров) внутри одновременно - различные комбинации размера и
> цветоразрешения: 16x16 32x32 48x48 против 2, 16, 256 цветов. Всего 9
> вариантов. Windows Explorer, когда отображает значок, выбирает из значка
> именно тот растр который более всего подходит к текущему разрешению экрана и
> установкам размеров значков. Например, в режиме "Large Icons" при
> отображении большого значка используются 48x48. Если нету подходящего
> растра, ближайший по разрешению конвертируется в нужный.
>
> Так вот, использованные Вами функции скорее всего работают "по умолчанию" -
> по умолчанию выбирается растр 16x16 16 цветов. Даже если нету такоро растра
> в ICO файле, наиболее подходящий из растров конвертируется в таковой.
Вопрос: как выбрать другой растр?
alexnmsk (2003-01-24 08:03:00) [6]Я так понимаю палитра меняется на шаге
TheLargeIcon.Handle := pTheLargeIcon^;
TheSmallIcon.Handle := pTheSmallIcon^;
Может есть какие нибудь альтернативные варианты извлечения иконок и сохранения их в файле помимо TIcon?
REA (2003-01-23 16:31:00) [7]Note: TIcon can be used to display the value of a multi-resolution (>16 color) icon. However, it can not support the creation of multi-resolution icons, nor the resizing of the image after it is loaded from a file or stream.
alexnmsk (2003-01-23 16:24:00) [8]видимо никто не поможет :(