首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

把image里的图片(jpeg) 里的图片保存到access2000 ole字段 保存不上呀!该怎么解决

2012-02-19 
把image里的图片(jpeg) 里的图片保存到access2000 ole字段 保存不上呀!!图片显示控件是image保存方法是TBl

把image里的图片(jpeg) 里的图片保存到access2000 ole字段 保存不上呀!!
图片显示控件是   image   保存方法是TBlobField(Adoquery1.FieldByName( 'Photo ')).Assign(AviFrame.Image2.Picture);

我测试过了   保存了个5k的   bmp   的图片可以保存    

我保存了个   20k的jpeg的图片却保存不进去   ole是空的

我现在图片全是   Jpeg的     如果转换成bmp   的就太大了   (1M)

如何实现jpeg的   access   ole   字段的   保存和显示  

难道   assign   方法有图片大小   限制?

[解决办法]
保存方式改为:
Adoquery1.FieldByName( 'Photo ').Assign(image1.Picture.Graphic);
读取方式为:
image1.Assign(Adoquery1.FieldByName( 'photo '));

[解决办法]
如果保存的是jpg格式,不能直接image1.Assign的,要先转换:
uses JPEG;
var
Stream:TMemoryStream;
Pic:TJPEGImage;
begin
Stream:=TMemoryStream.Create;
Pic:=TJPEGImage.Create;
try
(DataSet.FieldByName( 'PHOTO ') As TBlobField).SaveToStream(Stream);
Stream.Position:=0;
Pic.LoadFromStream(Stream);
image1.Picture.Assign(Pic);
finally
Pic.Free;
Stream.Free;
end;
end;
[解决办法]
猜测是格式问题。帮顶

热点排行