Siema nie wie ktoś może jak przekonwertować Ikone to pliku BMP lub JPEG. Jak ktoś wie gdzie jest adres do jakiegoś modułu to niech da odnośnik Nara
//przykład zakłada że zmienne zostały juz utworzone i ustawione zostały wszelkie potrzebne wartości
Ico.LoadFromFile('plik z ikonką');
Ico.Canvas.CopyRect(Width, Height, Bmp.Canvas);
A do sie na tej samej zasadzie w druga strone, bo zapis jako ICO nie tworzy "100%" ikony
Jeśli da się w jedną to da się i w drugą. Cała operacja działa na poziomie Canvasa, który jest identyczny w obu obiektach. Wystarczy Bmp zamienić na Ico a Ico na Bmp...
Mały przykład:
procedure bmp2ico(Image: TImage; FileName: TFilename);
var
Bmp: TBitmap;
Icon: TIcon;
ImageList: TImageList;
begin
Bmp := TBitmap.Create;
Icon := TIcon.Create;
try
Bmp.Assign(Image.Picture);
ImageList := TImageList.CreateSize(Bmp.Width, Bmp.Height);
try
ImageList.AddMasked(Bmp, Bmp.TransparentColor);
ImageList.GetIcon(0, Icon);
Icon.SaveToFile(FileName);
finally
ImageList.Free;
end;
finally
Bmp.Free;
Icon.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Bitmap.TransparentColor:=clwhite;
bmp2ico(Image1, 'test.ico');
end;
//tag <delphi> się kłania - m.M
Cała operacja działa na poziomie Canvasa, który jest identyczny w obu obiektach.
Nieprawda, TIcon, tak samo, jak TJPEGImage nie posiada właściwości canvas.
// Dopisane
Owszem, jeśli chodzi o ico->bmp, to nie ma problemu, ale na odwrotną konwersję nie mam pomysłu. Tym bardziej, że format ico jest bardziej złożony, posiada przezroczystość, lub nawet kanał alpha. Może się składać także z kilku różnych ikonek.
Racja, ale zawsze można to obejść metodą Draw innego canvasa, co nie?