procedure TForm1.Button1Click(Sender: TObject);
var jp:TJPEGImage;
begin
    jp:=TJPEGImage.Create;
    jp.LoadFromFile(self.Edit1.Text);
    jp.CompressionQuality:=strtoint(self.Edit3.Text);
    jp.Compress;    //只要加上,目标文件就变成空文件了
    jp.SaveToFile(self.Edit2.Text);
    jp.Free;
    ShowMessage('ok');
end;上面这个程序一执行,转换后的文件长度就变成零了,大家有没有遇到过这样的问题呀。

解决方案 »

  1.   

    修改代码如下
    delphi6下测试通过
    (假设质量为20)
    ------------------------
    procedure TForm1.Button2Click(Sender: TObject);
    var
     jp:TJPEGImage;
     bitmap:TBitmap;
    begin
      bitmap:=TBitmap.Create;
      jp:=TJPEGImage.Create;
      jp.LoadFromFile(self.Edit1.Text);
      jp.CompressionQuality:=20;
      bitmap.Assign(jpg);
      jp.Assign(bitmap);
      jp.Compress;
      jp.SaveToFile(self.Edit2.Text);
      jp.Free;
      ShowMessage('ok');
    end;
      

  2.   

    我的原始代码是这样的
    没有问题
    你可以参考
    ----------------------
    procedure TForm1.Button2Click(Sender: TObject);
    var
     jpg:TJPEGImage;
     bitmap:TBitmap;
    begin
      bitmap:=TBitmap.Create;
      jpg:=TJPEGImage.Create;
      jpg.LoadFromFile('c:\1.jpg');
      jpg.CompressionQuality:=20;
      bitmap.Assign(jpg);
      jpg.Assign(bitmap);
      jpg.Compress;
      jpg.SaveToFile('c:\2.jpg');
      jpg.Free;
    end;