我正在为 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,因为它允许使用单行缓冲区丢弃所有不需要的行并将实际需要的部分行提取到结果缓冲区中。这是使用它的有效方式吗?怎么可能呢?