数据库中存取图像的困惑(10分)

  • 主题发起人 主题发起人 hotdot
  • 开始时间 开始时间
H

hotdot

Unregistered / Unconfirmed
GUEST, unregistred user!
我用loadfromfile形式将图像文件存入数据库中,在用DBimage控件获取图像时,
发现控件中显示的图像与本地图片文件相差很大,这是什么原因呀?问题出在哪里了?
是存入的时候不对,还是取出的时候有问题?
存入:Query1.ParamByName('tByte').LoadFromFile(edit1.Text,ftGraphic);
在存入时,我用的参数分别是ftGraphic,ftBlob,均无法在控件中显示原图。
注:数据库字段为image型
 
图片存入数据库过程:源图片image——〉Stream——〉数据库
取图片过程与存入相反
流式数据的操作:
1.)SaveToStream(: TStream );
作用:将类中的数据写到Stream的当前位置中
2.)LoadFromStream(Stream: TStream);
作用:从当前位置读入Stream里的数据
 
你用的什么数据库?
你的语法没有错,可以的
当然了,也可以使用流
你可以把你存入数据库中的图片再保存成图片,看看跟原图片有什么差别
如果不是Blob Size的问题,应该不会有差别
 
数据库为SQL Server2000,字段类型是image
 
先把图片保存为内存流格式,
var
MyStream:TMemoryStream;
FileName: String;
begin
MyStream:= TMemoryStream;
MyStream.LoadFromFile(FileName);
....

然后用
TBlobField(Query1.FieldByName('fdasf')).LoadFromStream(MyStream);

......
 
多人接受答案了。
 
后退
顶部