看了很多的帖子,还是不能显示存储在Access中,类型为OLE 对象的bmp图像显示成功郁闷!
我的测试:
1)图片保存,此功能成功保存,代码如下:procedure TfrmCar.btnLoadPicClick(Sender: TObject);
begin
  If   OpenPictureDialog1.Execute   then
  begin
      Table1.Edit;
      TBlobField(Table1.FieldByName('Pic')).LoadFromFile(OpenPictureDialog1.FileName);
      Table1.Post;
  end;
end;2)查看图片,此功能失败,提示错误:
Project  DTW.exe raised exception class EJPEG with message 'JPEG error #53'. Process  stopped. Use Step or Run to continue.
,代码如下:
procedure TfrmCarQry.Button1Click(Sender: TObject);
var
  tempstream:TStringStream;
  tempjpeg:TJPEGImage;
begin
  try
    tempstream:=TStringStream.Create('');
    TBlobField(Query1.FieldByName('pic')).SaveToStream(tempstream);
    tempstream.Position:=0;
    tempjpeg:=TJPEGImage.Create;
    tempjpeg.LoadFromStream(tempstream);
    DBImage1.Picture.Bitmap.Assign(tempjpeg);
    //或者使用也是失败
    //Image1.Picture.Bitmap.Assign(tempjpeg);
  finally
    tempstream.Free;
    tempjpeg.Free;
  end;
end;使用这个也是同样的错误:
 var
      MyJPEG   :   TJPEGImage;
      MS:   TMemoryStream;
  begin
      MS:=TMemoryStream.Create;
      MyJPEG:=TJPEGImage.Create;
      Query1.Open;
      query1.First;
      try
          TBlobField(Query1.FieldByName('pic')).SaveToStream(MS);
          MS.Position:=0;
          MyJPEG.LoadFromStream(MS);
          dbImage1.Picture.Bitmap.Assign(MyJPEG);
      finally
          MS.Free;
          MyJPEG.Free;
      end;
  end;
  
请各位大侠多多指点,谢谢!!
再有使用dbimage 和image控件,有什么需要设置的属性么?

解决方案 »

  1.   

    参考一下:
    http://community.csdn.net/Expert/TopicView.asp?id=4615955
      

  2.   

    到底是bmp还是jpg??
    先把为什么不用Tbitmap??还有不应该用DB的控件,用Timage就可以了,
    如果是bmp,你把第2种方法的TJPEGImage换成TBitmap看看
      

  3.   

    我保存的时候使用的的是bmp格式,所以绑定的DBImage可以显示。现在我就要做个查询把我保存的bmp图片显示出来。如何做,问题还是没有解决?郁闷!
      

  4.   

    建议你不用QUERY用TABLE试一下,先以文件形式存到硬盘再调进来.
    table1.active:=true;
    table1img.SaveToFile('12345.bmp');
    table1.active:=false;
    image1.picture.loadfromfile('12345.bmp');table1img为双击table1控件增加的字段。
      

  5.   

    如果存的是bmp格式的文件,用dbimage可以直接显示出来~~!