一样的啊,image支持这种格式。

解决方案 »

  1.   

    dbimage不支持jpg,不过你可以image中将jpg转化为bmp,再到dbimage中显示出来
      

  2.   

    我用的是delphi6,好象以前的控件都不行了! :(
    原来数据库中存放的是BMP,但是体积实在太大,一下子就有了2G的数据,实在太大了,于是我想把数据全转成JPG的,但是那个dbimage不支持,大家还是帮一下忙,想想有什么办法!
    BTW:我不想用第3方的控件。
    jin_fei(金飞): 能详细的给出程序吗?
      

  3.   

    可以,不过要用TImage。还要uses JPEG。
    var
        FStream: TStream;
        FJpeg: TJPEGImage;  FJpeg := TJPEGImage.Create;
          FStream := TBlobStream.Create(TBlobField(DataSet.FieldByName('ImageField'), bmRead);
          try
            FJpeg.LoadFromStream(FStream);
            Image1.Picture.Assign(FJpeg.Bitmap);
          finally
            FStream.Free
          end
      

  4.   

    chechy(chechy) 说的不错。Uses JPEG
      

  5.   

    DBImage不支持Jpg格式。
    Image支持。
      

  6.   

    chechy:先谢谢你的帮助,但我用另一种方法解决了!
            TBLOBFIELD(table1.fieldbyname('pic')).savetofile('c:\temp\temp12.jpg');
            image1.Picture.LoadFromFile('c:\temp\temp12.jpg');
    这样应该没有什么坏处吧,除了有一个临时文件!
      

  7.   

    又仔细试了试,最后还是采用了你的方法,这样不用留“尾巴”吗! :)
    但是,你的代码多了几个字,哎,头都大了! 哈哈多谢了!~var
        FStream: TStream;
        FJpeg: TJPEGImage;FJpeg:=TJPEGImage.Create;
    FStream:=TBlobStream.Create(TBlobField(Table1.FieldByName('pic')),bmRead);
    try
    FJpeg.LoadFromStream(FStream);
    image1.Picture.Assign(FJpeg);    //就这里了,不用FJpeg.Bitmap 
    finally
    FStream.Free
    end
      

  8.   

    FStream.Free;
    FJpeg.Free;最后似乎这样更好吧。