IcoToBmp

0

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

0
//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);
0

A do sie na tej samej zasadzie w druga strone, bo zapis jako ICO nie tworzy "100%" ikony

0

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...

0

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

0

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.

0

Racja, ale zawsze można to obejść metodą Draw innego canvasa, co nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1