delphi jpg图片压缩问题CompressionQuality怎么用

huimingg 2013-03-01 03:10:12
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.
...全文
1384 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huimingg 2013-03-01
  • 打赏
  • 举报
回复
找到问题了 是图片不标准引起的问题
simonhehe 2013-03-01
  • 打赏
  • 举报
回复

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;
静_海 2013-03-01
  • 打赏
  • 举报
回复
感觉是异步操作引起的:文件还没读完就开始压缩。不妨试试再加个按钮,把 CompressionQuality 及以后的代码都由它启动(这样 jpg 就不能是局部变量了)。
huimingg 2013-03-01
  • 打赏
  • 举报
回复


会出现这个错误。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧