JPEG图象存储的问题(SQL2000、Image类型字段),怎么老出错(50分)

E

ebeggar

Unregistered / Unconfirmed
GUEST, unregistred user!
1 strm:=TMemorystream.Create;
2 TJPEGImage(Image1.Picture.Graphic).LoadFromFile(sFName);
3 TJPEGImage(Image1.Picture.Graphic).SaveToStream(strm);
4 (FieldByName('PicData') as TBlobField).LoadFromStream(strm);
5 strm.Free;
第4句,其中PicData为SQL2000的image字段,运行到此时出现:
‘Bitmap image is not valid’的错误,请问是怎么回事呢?

已经使用如下代码试过装载bmp位图没有问题。
strm:=TMemorystream.Create;
Image1.Picture.Bitmap).LoadFromFile(sFName);
Image1.Picture.Bitmap).SaveToStream(strm);
(FieldByName('PicData') as TBlobField).LoadFromStream(strm);
strm.Free;
 
看了很多帖子,说是用‘TBlobField(query1.Fields[n]).LoadFrom('xxx.jpg');’,
问题是我用的时候,为什么要提示‘Bitmap image is not valid’的错误呢?

注:我用的是TADODataSet,应该没问题吧
 
你有没搞错?该不会是直接用那个dbimage来显示jpeg吧?换成image吧,兄弟
 
你要转换一下,你那样直接导进入时是JPG文件,不行的。
你要用一个JPEG,一个BITMAP,先用JPEG读入文件,再Assigned给Bitmap就行了。
例子很多,自己找找。
 
to honghs:
兄弟,我是说保存哦,显示早就搞定了

to databox:
我把用如下语句也不行哦
strm:=TMemorystream.Create;
TJPEGImage(Image1.Picture.Graphic).LoadFromFile(sFName);
TJPEGImage(Image1.Picture.Graphic).SaveToStream(strm);
(FieldByName('PicData') as TBlobField).LoadFromStream(strm);
strm.Free;
 
呵呵,参考‘databox’的方法搞定,感觉是走了弯路,:)
 
多人接受答案了。
 
顶部