请帮我看看下面有关使用image显示和保存jpg图片的问题,谢谢!procedure TForm1.ToolButton7Click(Sender: TObject);
var
  MsImg: TMemoryStream;
  JpImg: TJpegImage;
begin
  try
    MsImg := TMemoryStream.Create;
    MsImg.LoadFromFile('C:\1.Jpg');    JpImg := TJpegImage.Create;
    //JpImg.LoadFromStream(MsImg);
    //JpImg.SaveToFile('C:\2.Jpg');    ADODataSet1.Append;
    TBlobField(ADODataSet1.FieldByName('Img')).LoadFromStream(MsImg);
    ADODataSet1.Post;    JpImg.LoadFromStream(MsImg);
    JpImg.SaveToFile('C:\3.Jpg');
  finally
    MsImg.Free;
    JpImg.Free;
  end;
end;
上面的代码运行后无错误提示,但C:\3.Jpg字节为0
如果改为:
  try
    MsImg := TMemoryStream.Create;
    MsImg.LoadFromFile('C:\1.Jpg');    JpImg := TJpegImage.Create;
    JpImg.LoadFromStream(MsImg);
    JpImg.SaveToFile('C:\2.Jpg');    ADODataSet1.Append;
    TBlobField(ADODataSet1.FieldByName('Img')).LoadFromStream(MsImg);
    ADODataSet1.Post;    //JpImg.LoadFromStream(MsImg);
    //JpImg.SaveToFile('C:\3.Jpg');
  finally
    MsImg.Free;
    JpImg.Free;
  end;
则正确。C:\2.Jpg和C:\1.Jpg一样。不知道为什么?数据保存没有问题,数据库是sql2000,字段类型image
同一个数据:
procedure TForm1.ToolButton5Click(Sender: TObject);
var
  MsImg: TMemoryStream;
  JpImg: TJpegImage;
begin
  try
    TBlobField(ADODataSet1.FieldByName('Img')).SaveToFile('c:\4.jpg');    MsImg := TMemoryStream.Create;
    JpImg := TJpegImage.Create;
    TBlobField(ADODataSet1.FieldByName('Img')).SaveToStream(MsImg);
    JpImg.LoadFromStream(MsImg);
    JpImg.SaveToFile('C:\5.Jpg');
  finally
    JpImg.Free;
    MsImg.Free;
  end;
end;
结果:C:\4.Jpg和C:\1.Jpg是一样的,C:\2.Jpg字节为0,不明白?请教,在线等待。