siberlee 发表于 2015-10-26 17:41:00

public Stream ImageData {get; set; }使用MemoryStream提示错误

你好!
在AR的基于代码的模板中,为了减少加载到内存中的图片所占空间,使用了这个接口为报表提供图片数据,在Picture控件属性中的ImageData类型是Stream的,而我使用了MemoryStream,但是发现会报错,报表是这样的。“System.IO.EndOfStreamException: 无法在流的结尾之外进行读取”。是什么原因,能否提供示例。或者在代码中有没有地方可以直接设置一个路径,类似在模板编辑中chose image 对话框的效果。
目前我们使用,this.picture1.Image = System.Drawing.Image.FromFile("\\mycompany.gif");这种方法,内存会非常大,不能用这种方法。

frank.zhang 发表于 2015-10-27 10:22:00

您好,
picture1的Image是,Framework中标准的类,可以参考
https://msdn.microsoft.com/zh-cn/library/System.Drawing.Image(v=vs.110).aspx

Image提供了FromStream的方法,参考代码:
            Image newImage = System.Drawing.Image.FromFile("..\\..\\logo.png");
            System.IO.MemoryStream st = new System.IO.MemoryStream();
            newImage.Save(st, System.Drawing.Imaging.ImageFormat.Jpeg);
            this.picture1.Image = System.Drawing.Image.FromStream(st);

siberlee 发表于 2015-10-27 11:03:00

有没有可能使用ImageData方式来加载图片数据?

回复 2楼frank.zhang的帖子

你好!
我想使用AR的SectionReport所提供的这个接口来load数据。


附件中是我写的示例程序,麻烦帮忙看一下。

frank.zhang 发表于 2015-10-27 11:57:00

您好,

ImageData是为了兼容性保留下来的接口,目前,已经不再使用。
您可以尝试使用FromStream的方法,也是使用Stream的方式。
页: [1]
查看完整版本: public Stream ImageData {get; set; }使用MemoryStream提示错误