我正在开发Windows Mobile 6.1的应用程序。在某些时候,显示图像的设备。但是,当我这样做时,我会不时遇到RAM的限制。
我正在使用http://blog.opennetcf.com/ctacke/2010/10/13/LoadingPartsOfLargeImagesInTheCompactFramework.aspx中的食谱,但最后,它没有为我提供解决方案。更具体地说,在CreateClip中读取整个图像
GetFactory().CreateBitmapFromImage(image, info.Width, info.Height,
info.PixelFormat, InterpolationHint.InterpolationHintDefault, out original);
这是我收到OutOfMemoryException的地方。
问题是,如何才能读取特定区域,其余图像被丢弃而不保存在内存中?我正在使用的图像格式是png。
我需要的最近的东西是来自libpng的png_read_row,因为它允许使用一行缓冲区丢弃所有不需要的行并提取实际需要的部分行到结果缓冲区中。这是有效的使用方式吗?怎么办?