Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Конверт bmp в png и gif


Автор: SultanOFF 7.12.2009, 22:02
Здравствуйте. Инттересно как можно бмп сконвертировать в png и gif? Или может можно сразу без создания бмп сохранять скриншот в png и gif форматах? У кого нибудь есть идеи? 

Автор: Keeper89 7.12.2009, 22:33
http://delphidevelop.ru/publ/12-1-0-174 и http://melander.dk/delphi/gifimage/

Автор: Snowy 8.12.2009, 11:05
Примеры конвертации внизу этой страницы

Автор: SultanOFF 8.12.2009, 20:50
конвертация в png
Код

procedure pngcre;
  var
bmp: TBitmap;
DC: HDC;
png: TPngImage;
Begin
Try
bmp:= TBitmap.Create;
png:= Tpngimage.create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
png.Assign(Bmp);

png.SaveToFile('c:\test.png');
ReleaseDC(0, DC);
finally
Bmp.Free;
png.Free;
End;
End;




в gif
Код

procedure gifcre;
  var
bmp: TBitmap;
DC: HDC;
gif: TGIFImage;
Begin
Try
bmp:= TBitmap.Create;
gif:= TGIFImage.create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
gif.Assign(Bmp);

gif.SaveToFile('c:\test.gif');
ReleaseDC(0, DC);
finally
Bmp.Free;
gif.Free;
End;
End;

Автор: AntonN 8.12.2009, 22:45
если BMP с альфаканалом, то:
Код

var bres:tbitmap; iii,ii:integer;
    PNB:TPngObject; aaa:pByteArray;
begin
  PNB:=TPngObject.Create;
  try
    //bres - наш bmp
    
    PNB.Assign(bres);
    pnb.CreateAlpha;
    for ii:=0 to bres.Height-1 do begin
        fff:=bres.ScanLine[ii];
        aaa:=pnb.AlphaScanline[ii];
        for iii:=0 to bres.Width-1 do begin
          aaa[iii]:=fff[iii].rgbReserved;
        end;
    end;

    PNB.SaveToFile(Edit3.Text+'_p.png');

  finally
    PNB.free;
  end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)