例如我有一图象文件:a.jpg  想用TFileStream 方法如何才能把它保存到
uses jpeg;
type
myRecord = record
  other: string[30];
  photo: Tjpegimage;
end;如何保存到  photo  中
如何读取到 窗体上的 Image1 中

解决方案 »

  1.   

    delphi 5开发人员指南
    这本书有关于这方面的例子!
      

  2.   

    28章有用Tblobstream,读或保存到blob字段
      

  3.   

    可不可以帮忙贴一段代码,或发MAIL:[email protected]
      

  4.   

    var ft1,ft2 :tfilestream  ;
      photo: Tjpegimage;
    begin
       ft2:=TFileStream.Create('c:\a.jpg',fmOpenRead);
       ft1:=TFileStream.Create('c:\b.jpg',fmOpenRead);
       photo:=  TJpegimage.Create;
       photo.LoadFromStream(ft1);   image1.Picture.Graphic:=TJpegimage.Create;
       image1.Picture.Graphic.LoadFromStream(ft2);   image1.Picture.Graphic.Assign(photo);
      

  5.   

    谢谢楼上的兄台,但我说的不是这个意思,是保存到RECORD文件中的一个字段PHOTO.
      

  6.   

    TO xieyj (快乐天使) myRecord = record
      other: string[30];
      photo: Tjpegimage;//这儿的PHOTO是一个引用类型,也就是只是
         //一个四字节的指针,把它存入文件是没有意义的.
         //如果图象文件比较小,可以用一个固定大小的字符数组.
         
    end;
      

  7.   

    Tjpegimage 是从 TPersistent 继承来的所以他支持串行化.
      

  8.   

    record文件已不再适应对象的持久化了
      

  9.   

    {本程序已胜利实现了图像从mysql数据库存入和读出
    作者:刘志强
    image表:
         code  char(10)  ,
         image  longblob
    }
    unit Unit119;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, MySQLDataset, Grids, DBGrids,MySQLServer, StdCtrls, DBCtrls;type
      TForm1 = class(TForm)
        MySQLServer1: TMySQLServer;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        MySQLQuery1: TMySQLQuery;
        Button1: TButton;
        Button2: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
     try
      try
        //向Mysql表写入Bmp图像
        // MySQLQuery1.SQL.Clear;
        // MySQLQuery1.SQL.Add('select * from image  where code="刘志12"');
         MySQLQuery1.Open;
         if not (MySQLQuery1.State in [dsInsert, dsEdit]) then
                    MySQLQuery1.Insert;
         MySQLQuery1.FieldByName('code').AsString:=Edit1.Text;
         TBlobField(MySQLQuery1.FieldByName('image')).loadFromFile('C:\masm32\example8\mob\cws2\test.bmp');
         //MySQLQuery1.TableName:='image';
         MySQLQuery1.post;
         finally
            MySQLQuery1.Close;
          end;
        except
           on EDatabaseError do
           begin
              case    MySQLServer1.Server.net.last_errno of
               1062 :       //已有此记录
                 ShowMessage(inttostr(MySQLServer1.Server.net.last_errno));
            // ShowMessage( MySQLServer1.Server.net.last_error);
              end;
           end;
        end;end;procedure TForm1.Button2Click(Sender: TObject);
    var
    bmp:TBitmap;
    stream:TMySQLBlobStream;
    begin
           //从Mysql表读出Bmp图像
        try
         MySQLQuery1.SQl.Clear;
         MySQLQuery1.SQL.Add('select * from image  where code="121212"');
         MySQLQuery1.Open;    // MySQLQuery1.Next;
         MySQLQuery1.Edit;
         Stream := TMySQLBlobStream.Create(MySQLQuery1.FieldByName('image') as TBlobField, bmReadWrite);
         bmp:=TBitmap.Create;
         bmp.LoadFromStream(stream);
         MySQLQuery1.Close;
         canvas.Draw(0,0,bmp);
      finally
          bmp.free;
          Stream.Free;
      end;
    end;
    end.
      

  10.   

    保存到SQL可以,自定义的RECORD,怎么把它保存进去呢?
      

  11.   

    TBlobField(ADOTable.FieldByName('RECORD')).loadFromFile('OpenPicturedialog1.FileName');