Sunday, May 27, 2007

Funkce tedy bude vypadat takto:

procedure BmpToJpeg(Bmp: TBitmap; Q: TJpegQualityRange; var Jpg: TJpegImage);
begin
Jpg.CompressionQuality := Q;
Jpg.Assign(Bmp);
end;
Požadovaná kvalita Q (či chcete-li kompresní faktor), která – jak jistě víte – ovlivňuje výsledný vzhled a velikost souboru, může nabývat hodnot od 1 do 100, přičemž čím nižší je hodnota, tím menší je výsledný soubor (pochopitelně na úkor kvality obrazu). Tuto jednoduchou funkci poté využijeme například takto:
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp : TBitmap;
JPG : TJpegImage;
begin
if Form1.OpenPictureDialog1.Execute then
begin
Bmp := TBitmap.Create;
JPG := TJpegImage.Create;
Bmp.LoadFromFile(Form1.OpenPictureDialog1.FileName);
BmpToJpeg(Bmp, 30, JPG);
JPG.SaveToFile('vystup.jpg');
JPG.Free;
Bmp.Free;
end;
end;