为什么我应该保持流打开,而使用位图

为什么我应该保持流打开,而使用位图

问题描述:

我不明白为什么我应该保持流打开,而我使用BitmapImage为什么我应该保持流打开,而使用位图

我尝试关闭流并使用我的图像几种方式,一切都很好。

问题是在什么情况下,如果在初始化Image对象后继续关闭流,我可以得到异常?

+1

请张贴您的代码! – dash 2012-04-05 19:42:46

Image类不会在创建时通过Image.FromFileImage.FromStream创建整个图像,但是只能读取足以响应基本查询(如大小和像素格式)的图像。

只有当您尝试以任何方式访问像素(通常通过在屏幕上绘制图像)时,才会读取图像数据。

这个懒惰的本质意味着它需要访问底层的流(或文件),当它需要在其后的一生中。

+0

您当然可以将图像数据读入内存流(或者可以使用其他apis立即加载图像),以便可以关闭底层文件。但是,只有在打开文件时出现_problem_才有必要。 – 2012-04-05 19:54:15