Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.9.115] |
|
Сообщ.
#1
,
|
|
|
Добрый вечер. Трабла с CreateIconIndirect - никак не могу явно указать ей что мне нужна иконка в True Color или еще какую но во всяком случае выше 4 бит на пиксель. Подскажите, пожалуйста, решение
bmp := TBitmap.Create; bmp.LoadFromFile(fn); bmp2 := TBitmap.Create; Bmp2.Width:=32; Bmp2.Height:=32; bmp2.Canvas.Rectangle(0, 0, Bmp2.Width, Bmp2.Height); Bmp2.PixelFormat := pf24bit; SetStretchBltMode(Bmp2.Canvas.Handle, HALFTONE); StretchBlt(Bmp2.Canvas.Handle, 0, 0, Bmp2.Width, Bmp2.Height, Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, SRCCOPY); //тут если сохранить - все хорошо, изображение действительно имеет 24-битный цвет BmpMask := TBitmap.Create; BmpMask.PixelFormat := pf1bit; BmpMask.Canvas.Brush.Color := clBlack; BmpMask.Width := Bmp2.Width; BmpMask.Height := Bmp2.Height; BmpMask.Canvas.Rectangle(0, 0, Bmp2.Width, Bmp2.Height); FillChar(IconInfo, SizeOf(IconInfo), 0); IconInfo.fIcon := True; IconInfo.hbmMask := BmpMask.Handle; IconInfo.hbmColor := bmp2.Handle; Ico := TIcon.Create; //TIcon не имеет никаких параметров касающихся цвета Ico.Handle := CreateIconIndirect(IconInfo); //Тут получаем 4-bit 32x32 Ico.SaveToFile(paramstr(2)); bmp.Free; bmp2.Free; Ico.Free; |
Сообщ.
#2
,
|
|
|
Цитата BmpMask.PixelFormat := pf1bit; ? |