Конференция "Media" » Конвертиорвание jpeg в gif.
 
  • 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 ?
  • tesseract © (01.11.08 14:11) [2]

    > Как тогда загнать его в TBitmap? Заранее благодарен.


    DibNeeded смотри.
  • CodeMaster © (02.11.08 22:11) [3]
    А вот так нелегче?

    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;

    Впринципе должно работать. Не тестировал, поэтому не знаю точно.
 
Конференция "Media" » Конвертиорвание jpeg в gif.
Есть новые Нет новых   [133926   +456][b:0][p:0.001]