![]() |
|
|
|
|
#1
|
||||
|
||||
|
Как загрузить gif в TImage? Без дополнительных модулей и компонент.
|
|
#2
|
||||
|
||||
|
Рисунки простые, поэтому очень хочется хранить их в gif, в bmp весят десятки МБ
. |
|
#3
|
||||
|
||||
|
Можно вот так
Код:
procedure TForm1.Button1Click(Sender: TObject); var og: TOleGraphic; fs: TFileStream; begin if OpenDialog1.Execute then begin og:= TOleGraphic.Create; fs:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmSharedenyNone); og.LoadFromStream(fs); Image1.Picture.Assign(og); fs.Free; og.Free; end; end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Kpyc (03.07.2013)
| ||
|
#4
|
||||
|
||||
|
Вроде то что надо, только Transparent перестал работать. Гружу так:
Код:
MyLoadImage('images\MyGif.gif', source);
Source.Height := SCREEN_Y div 10;
Source.Width := Source.Height;
Transparent := TRUE;
Stretch := TRUE;MyLoadImage - Выше описанная функция с параметрами путь и TImage Source - TImage Код:
procedure MyLoadImage(fName: String; img: TImage); var og: TOleGraphic; fs: TFileStream; begin og:= TOleGraphic.Create; fs:= TFileStream.Create(fName, fmOpenRead or fmSharedenyNone); og.LoadFromStream(fs); img.Picture.Assign(og); fs.Free; og.Free; end; Последний раз редактировалось Kpyc, 03.07.2013 в 21:16. |
|
#5
|
||||
|
||||
|
Наверное надо Source.Transparent и Source.Stretch
|
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Kpyc (03.07.2013)
| ||
|
#6
|
||||
|
||||
|
Не помогает. Попробовал так:
Код:
with Source do
begin
MyLoadImage('images\MyGif.gif', source);
Height := SCREEN_Y div 10;
Width := Source.Height;
picture.Bitmap.transparentmode := tmAuto;
picture.bitmap.TransparentColor := clWhite;
picture.Bitmap.transparent := true;
Stretch := TRUE;
end;Изображение исчезает совсем. Причем если поставить transparent = FALSE исчезает тоже. Появляется только если удалить все строчки связанные с прозрачностью (6-8). |