Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

bmp2ico   Найти похожие ветки 

 
XeON ©   (2003-10-24 12:54) [0]

Дарова мастера! Подскажите пожалуйста, как бы мне сделать .ico из .bmp? Только пожалуйста реальный пример, а не статью... Я статей штук 5 прочёл уже! Токо там нихрена не работает! Получается какая-то красная, круглая иконка. Заранее благодарен.


 
SEvgeniy   (2003-10-24 19:01) [1]

запихиваеш в ImageList свои bmp а потом делаеш:

var
ic:ticon;
begin
ic:=TIcon.Create;
ic.Width:=your_icon_Width;
ic.Height:=your_icon_Height;
ImageList.GetIcon(index_of_your_icon,ic);
ic.SaveToFile("icon_name.ico");
ic.Free;
end;
но с цветами, по моему, все равно проблемы будут...


 
Mihey ©   (2003-10-24 20:17) [2]

Точно работающий способ - загрузить в TPicture и сохранить при помощи TPicture.Graphic.SaveToFile, указав ".ico" в расширении.


 
XeON ©   (2003-10-25 18:38) [3]

Только если указать расширение .ico, то это уже будет не икнока...


 
XeON ©   (2003-10-26 07:16) [4]

А может ещё кто подскажет как сделать 16и бутную иконку?


 
Mihey ©   (2003-10-26 22:42) [5]

> Только если указать расширение .ico, то это уже будет не икнока...

Ага, это будет DOC. Ты открыл недокументированные возможности.


 
Mihey ©   (2003-10-26 22:46) [6]

function BitmapToIcon(Bitmap: TBitmap): TIcon;
var
IconSizeX, IconSizeY : integer;
IconInfo: TIconInfo;
IconBitmap, MaskBitmap: TBitmap;
x, y: Integer;
TransparentColor: TColor;
begin
IconSizeX := GetSystemMetrics(SM_CXICON);
IconSizeY := GetSystemMetrics(SM_CYICON);
IconBitmap:= TBitmap.Create;
IconBitmap.Width:= IconSizeX;
IconBitmap.Height:= IconSizeY;
IconBitmap.Canvas.StretchDraw(Rect(0, 0, IconSizeX, IconSizeY), Bitmap);
IconBitmap.TransparentColor:= Bitmap.TransparentColor;
TransparentColor:= IconBitmap.TransparentColor and $FFFFFF;
MaskBitmap:= TBitmap.Create;
MaskBitmap.Assign(IconBitmap);
for y:= 0 to IconSizeY - 1 do
for x:= 0 to IconSizeX - 1 do
if IconBitmap.Canvas.Pixels[x, y] = TransparentColor then
IconBitmap.Canvas.Pixels[x, y]:= clBlack;
IconInfo.fIcon:= True;
IconInfo.hbmMask:= MaskBitmap.MaskHandle;
IconInfo.hbmColor:= IconBitmap.Handle;
Result:= TIcon.Create;
Result.Handle:= CreateIconIndirect(IconInfo);
MaskBitmap.Free;
IconBitmap.Free;
end;

Хотя мой способ лучше и работает, надо только не лениться.



Страницы: 1 вся ветка

Текущий архив: 2004.02.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-79926
akiro
2004-02-09 17:59
2004.02.25
Как записать в реестр переменную типа tagWINDOWPLACEMENT ?


3-79614
Пубертанец
2004-01-30 16:40
2004.02.25
Проблема с внешними ключами в Interbase


3-79611
Игорь М
2004-01-30 14:24
2004.02.25
В числовом поле, содержится дата...


1-79761
Igor G
2004-02-14 12:01
2004.02.25
Как уменьшить изображение


6-80060
korvin
2003-12-18 16:41
2004.02.25
Избито и тривиально, но ... сокеты