-
parasolka (31.10.08 12:51) [0]Здравствуйте. Надо сконвертировать jpeg в gif. Для этого использую компонент TGifImage из RxLib. Делаю следующим образом.var
g: TGifImage;
b: TBitmap;
j: TJpegImage;
begin
j:=TJpegImage.Create;
b:=TBitmap.Create;
j.LoadFromFile('C:\NetExchange\2.jpg');
g:=TGifImage.Create;
g.Assign(b);
g.SaveToFile('C:\NetExchange\test.gif');
b.Free;
g.Free;
j.Free;
end
Так все работает. Проблема в том, что на практике jpeg находится в TMemoryStream. Как тогда загнать его в TBitmap? Заранее благодарен. -
Palladin © (31.10.08 13:02) [1]а что, у TJPEGImage нет метода LoadFromStream ?
-
> Как тогда загнать его в TBitmap? Заранее благодарен.
DibNeeded смотри. -
А вот так нелегче?
procedure ConvertJPEGToGIF(Dest,Source: FileName);
var
Ext: String;
GIF: TGIFImage;
JPEG: TJPEGImage;
begin
if not FileExists(Source) then Exit;
Ext:= ExtractFileExt(Source);
if (Ext <> '.jpg') or (Ext <> '.jpeg') then Exit;
JPEG:= TJPEGImage.Create;
GIF:= TGIFImage.Create;
JPEG.LoadFromFile(Source);
GIF.Width:= JPEG.Width;
GIF.Height:= JPEG.Height;
GIF.Canvas.Draw(0,0,JPEG);
GiF.SaveToFile(Dest);
JPEG.Free;
GIF.FRee;
end;
Точно не помню какой метод у GIF ну попробуй ещё вот так
procedure ConvertJPEGToGIF(Dest,Source: FileName);
var
Ext: String;
GIF: TGIFImage;
JPEG: TJPEGImage;
Bmp1: TBitmap;
begin
if not FileExists(Source) then Exit;
Ext:= ExtractFileExt(Source);
if (Ext <> '.jpg') or (Ext <> '.jpeg') then Exit;
JPEG:= TJPEGImage.Create;
GIF:= TGIFImage.Create;
Bmp1:= TBitmap.Create;
JPEG.LoadFromFile(Source);
Bmp1.Width:= JPEG.Width;
Bmp1.Height:= JPEG.height;
Bmp1.Draw(0,0,JPEG);
GiF.Assign(BMp1);
GiF.SaveToFile(Dest);
Bmp1.Free;
JPEG.Free;
GIF.FRee;
end;
Впринципе должно работать. Не тестировал, поэтому не знаю точно.