我试了一下,出错提示是'bitmap image is not valid'。
而同样是bmp格式的数据就能正常显示。

解决方案 »

  1.   

    1.jpeg转化成bmp图像.
    var  
       JPGImage  :  TJpegImage;  
       bitmap:tbitmap;
    begin  
       JPGImage:=Tjpegimage.Create;
       bitmap:=tbitmap.create;
       try
          JPGImage.LoadFromfile(jpegfilename); 
          bitmap.assign(jpgimage);  
          dbimage1.picture.bitmap.assing(bitmap);
       finally
          jpgimage.free;
          bitmap.free; 
       end;     
    end;  
      

  2.   

    在做数据库程序时, 如果把.bmp文件存放一到数据库里。我想这个人的就是个傻子,因为我本人以前就干过这种事。
    哈::); 速度很慢的。 2000在这方面速度有所加快。好了。有几种方法可以实现把.jpg 文件存放到数据库。 第一种是将.jpg格式文件通过流的方式存储到数据库,或者相反的过程读 出来。第二种是我发现的1stclass3000 or 1stclass4000里有一个 dbimage
    组件完全可以解决这个问题,我采用的是控件, 当然前一种方法我实现了。
    但需要自己控制。
      

  3.   

    能不能不转,我数据库本来存的就是bmp的图像,后来为了节约硬盘资源转成bmp,发现tdbimage不支持了。
      

  4.   

    建议还是按大宋的方法转一下,jpg和bmp的大小差太多了。
      

  5.   

    将图片转换为jpg格式并写入数据库中:
    http://www.csdn.net/expert/topic/973/973247.xml?temp=.441189
      

  6.   

    将jpe存入数据库我已经做到了,现在最头疼的问题是TDBimage不能显示,说是无效格式。
    Timage可以,但是程序改动太大。
    我的程序以前做的不好,有一点牵一发而动全身,能不能少一点改动,就用TDBimage
      

  7.   

    你是怎么把.jpg文件存进去的。就用这个方法读出来嘛.
      

  8.   

    看看吧,也是用Timage,显示数据库中的jpg图片:
    http://www.csdn.net/expert/topic/973/973247.xml?temp=.441189
      

  9.   

    TO MY_FIRST
    一个函数转换
    function ChangeBmpToJpg(parasms:Tmemorystream):Tmemorystream;
    var
       mybmp:TBitmap;
       myjpg:TJPEGImage;begin
       mybmp:=Tbitmap.Create;
      try
       mybmp.LoadFromStream(parasms);
       myjpg:=Tjpegimage.Create;
       myjpg.Assign(mybmp);
       myjpg.CompressionQuality:=75;
       myjpg.Compress;
       result:=tmemorystream.Create;
       myjpg.SaveToStream(result);
       result.Free;
       myjpg.Free;
      finally
       mybmp.free;
      end;
    end;
    ///////文件存入数据库//////
    (table1.fieldbyname('a2') as TblobField ).loadfromfile(tfilename('C:\rrr.jpg));
    ///////内存流存入数据库//////
    fil1:=tmemorystream.create;
    fil1:=ChangeBmpToJpg(bmpmemorystream);
    (table1.fieldbyname('a2') as TblobField ).LoadFromStream(fil1);//
    /////取出////
      IBmp:=table1.FieldByName('a5') AS TBlobField;
      IBmp.SaveToFile('C:\sss2.Jpg');
      

  10.   

    to zdcnow 
    我认真看过了,谢谢,我还是希望能用tdbimage。
    我是不是太执著了 :)
      

  11.   

    to vague(小糊涂) :
        呵呵,佩服。
        在取出图片之后进行转换处理,然后再把值传给TDBimage就行了,不是不行,不过真的很麻烦,而且速度比直接显示为jpg慢。
      

  12.   

    出错提示是'bitmap image is not valid'的原因是因为TDBimage不支持jpg格式的数据库字段。
    所以不要直接在这里给TDBimage的DataFeild字段付值,要在代码里完成,把jpg格式转换为bmp格式,然后再付值。
    真的很麻烦,我做过,所以我知道。呵呵
      

  13.   

    to zdcnow呜~~~~那不是折腾人嘛?
    我知道了,结贴。