显示及保存,如何解决,请详细全面一点的,先行谢过!

解决方案 »

  1.   

    用DBIMAGE控件,就可以完全解决了,loadfromimage
      

  2.   

    一个例子
    var
      jpeg: TJPEGIMAGE;
      s: string;
    begin
      if Image2.Tag = 0 then
      begin
        showmessage('dd');
        exit;
      end;
      s := extractfilepath(Application.ExeName) + 'jpeg.jpg';
      jpeg := TJPEGIMAGE.Create;
      jpeg.Assign(Image2.picture);
      jpeg.CompressionQuality := 75;
      jpeg.Compress;
      jpeg.SaveToFile(s);
      if DM.DS_YGPHOTO.Active then
      begin
        if form1.Image1.Tag = 0 then
        begin
          DM.DS_YGPHOTO.Insert;
          DM.DS_YGPHOTO.fieldbyname('bh').AsString := DM.DS_YGHMC.fieldbyname('bh').AsString;
          tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s);
        end;
        if form1.Image1.Tag = 1 then
        begin
          DM.DS_YGPHOTO.edit;
          tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s);
        end;    DM.DS_YGPHOTO.Post;
      end;
      freeandnil(jpeg);
    上面的是存储
    读取
    var
      jpeg: TJPEGIMAGE;
      stream: TMemoryStream;
    begin
      Image1.picture.Assign(nil);
      if DM.DS_YGPHOTO.fieldbyname('photo').IsNull then
      begin
        Image1.Tag := 0;
        Panel2.Caption := '无照片';
      end
      else
      begin
        jpeg := TJPEGIMAGE.Create;
        stream := TMemoryStream.Create;
        tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).savetostream(stream);
        stream.Seek(0, soFromBeginning);
        jpeg.loadfromstream(stream);
        Image1.picture.Bitmap.Assign(jpeg);
        freeandnil(jpeg);
        freeandnil(stream);
        Image1.Tag := 1;
      end;
    这是存取JPEG格式的,如果BMP的话,就直接做就可以了,不用那个JPEG单元了