Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему меняется палитра


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]

видимо никто не поможет :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо