读书人

把image里的图片(jpeg) 里的图片保存到

发布时间: 2012-02-19 19:43:38 作者: rapoo

把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;
[解决办法]
猜测是格式问题。帮顶

读书人网 >.NET

热点推荐