//查看图片
procedure TDM.ViewPhoto(ImagX:TImage;FiledX:TBlobField);
var
    B:Tbitmap;
    JpegImage:TJpegImage;
    BS:TBlobStream;
begin
    ImagX.Picture.Assign(nil);
    if not FiledX.IsNull then begin
        try//如果是Jpeg格式
           BS := TBlobStream.Create(TBlobField(FiledX), bmRead);
           JpegImage := TJpegImage.Create;
           JpegImage.JPEGNeeded;
           JpegImage.LoadFromStream(BS);
           ImagX.Picture.Assign(JpegImage);
           JpegImage.Free;
           BS.Free;
        except//如果是BMP格式
           BS := TBlobStream.Create(TBlobField(FiledX), bmRead);
           B:=Tbitmap.Create;
           b.LoadFromStream(BS);
           ImagX.Picture.Assign(b);
           B.Free;
           BS.Free;
        end;
    end;
end;

解决方案 »

  1.   

    以下是我觉得在所有图片存取方法中最简单的方法
    use jpeg,Clipbrd、、、、、、、、、、、、、
    //Save to database
    Image1.Picture.LoadFromFile('FileName');
    if not (Image1.Picture.Graphic Is TBitmap) then
    begin
      ClipBoard.Assign(Image1.Picture);
      Image1.Picture.Bitmap.Assign(ClipBroad);
      ClipBoard.Clear;
    end;//Change the picture that's not belonged to .bmp to .bmp
        // picture 
    Table1.Edit;
    Table1.FieldByName('Image').Assign(Image1.Picture);
    Table1.Post;
    //get from database
    Image1.Picture.Bitmap.Assign(TPicture(Table1.FieldByName('Image')));
      

  2.   

    上面的函数是将图形字段的内容读入到Image控件中,存就比较简单了。
    可以使用字段的LoadFromFile方法。