把image里的图片(jpeg) 里的图片保存到access2000 ole字段 保存不上呀!该怎么解决
把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;
------解决方案--------------------
猜测是格式问题。帮顶
图片显示控件是 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;
------解决方案--------------------
猜测是格式问题。帮顶