delphi jpg图片压缩有关问题CompressionQuality如何用
delphi jpg图片压缩问题CompressionQuality怎么用
procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg := TJpegImage.Create;
jpg.LoadFromFile('c:\1.jpg');
jpg.CompressionQuality:=40;
jpg.Compress;
jpg.SaveToFile('C:\AA.jpg');
end;
end.
------解决方案--------------------
感觉是异步操作引起的:文件还没读完就开始压缩。不妨试试再加个按钮,把 CompressionQuality 及以后的代码都由它启动(这样 jpg 就不能是局部变量了)。
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg := TJpegImage.Create;
jpg.LoadFromFile('c:\1.jpg');
jpg.CompressionQuality:=40;
jpg.Compress;
jpg.SaveToFile('C:\AA.jpg');
end;
end.
------解决方案--------------------
感觉是异步操作引起的:文件还没读完就开始压缩。不妨试试再加个按钮,把 CompressionQuality 及以后的代码都由它启动(这样 jpg 就不能是局部变量了)。
------解决方案--------------------
uses jpeg;
procedure TForm13.btn1Click(Sender: TObject);
var
jpg: TJpegImage;
bmp: TBitmap;
begin
jpg := TJpegImage.Create;
bmp := TBitmap.Create;
try
jpg.LoadFromFile('c:\1.jpg');
bmp.Width := jpg.Width;
bmp.Height := jpg.Height;
bmp.Canvas.StretchDraw(bmp.Canvas.ClipRect, jpg);
jpg.Assign(bmp);
jpg.CompressionQuality := 40;
jpg.Compress;
jpg.SaveToFile('C:\AA.jpg');
finally
bmp.free;
jpg.free;
end;
end;