如何读取数据文件中的jpg格式部分(100分)

  • 主题发起人 主题发起人 qiangyao
  • 开始时间 开始时间
Q

qiangyao

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个数据文件,结构固定,其中有一部分为jpg 如何读出,并显示
 
先转换进数据库如何?
 
var
dat :TJPEGImage;
ms :Tmemorystream;
.....
构造ms,dat ;
ms.read(); //jpg数据读入流中
dat.LoadFromStream(ms);
dat.savetofile();
析构ms,dat;

 
procedure TForm1.Button1Click(Sender: TObject);
var tempstream:TStringStream;
  tempjpeg:TJPEGImage;
begin
  try
    tempstream:=TStringStream.Create('');
    TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream);
    tempstream.Position:=0;
    tempjpeg:=TJPEGImage.Create;
    tempjpeg.LoadFromStream(tempstream);
    DBImage1.Picture.Bitmap.Assign(tempjpeg);
 finally
    tempstream.Free;
    tempjpeg.Free;
 end;
end;
这段代码的主要作用是:首先将查询结果中的JPEG图像格式数据保存到TStringStream中去,
然后设置数据指针在TStringStream中的位置为0;接着从TStringStream中读入相关数据,并把它们赋给TDBImage.Picture.Bitmap,
这样一来就实现了将数据库中所存储的JPEG格式的数据转化为BMP格式,并在TDBImage中将图像显示出来。
最后将TStringStream和TJPEGImage这两个对象释放掉。
特别要注意的是不能在设计阶段设置TDBImage的DataField属性,而只能通过写代码的形式在运行阶段把利用流式数据所转化过来的新格式的图像数据赋给TDBImage.Picture.Bitmap。
 
多人接受答案了。
 
后退
顶部