Недавно гулял по интернету и наткнулся на интересный код. Код Delphi: Code: var MyIcon: TIcon; begin MyIcon := TIcon. Create; try MyIcon.Handle := ExtractIcon(hInstance, 'MYPROG.EXE', 0) MyIcon.SaveToFile('Icon1.ico'); finally MyIcon.Free; end; end; Теперь о том, почему он интересный: При сохранении теряются нормальные цвета. Это наглядно доказывает следующий код. Код Delphi: Code: var MyIcon: TIcon; begin MyIcon := TIcon. Create; try MyIcon.Handle := ExtractIcon(hInstance, 'MYPROG.EXE', 0) Image1.Picture.Icon.Assign(MyIcon); finally MyIcon.Free; end; end; В этом случае мы наглядно видим иконку со вполне здоровыми цветами. Было бы интересно узнать в чём же причина потери цветов?
Ну канвас он по дефолту вроде как 24 битны. А иконка может и не быть по дефолту таковой. Или же быть для разных количеств цветов. Когда сохраняешь, то погляди скольки битная на выходе получается иконка. Решением может быть - или установка глубици цвета насильно или использование промежуточного битмапа