Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.053 c
14-80107
Anatoly Podgoretsky
2004-02-02 17:37
2004.02.25
Разъемы DVI


1-80008
-=Zerg=-
2004-02-12 10:50
2004.02.25
ХЕЛП!!! Как избежать ошибки Out Of Memory при линковании программ


14-80177
syte_ser78
2004-02-05 15:03
2004.02.25
SaveHTMLSourceToFile


1-79904
ded
2004-02-09 20:54
2004.02.25
Mini проги


14-80285
Кот Бегемот
2004-02-03 09:15
2004.02.25
Корпорация Microsoft - год основания - 1975





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский