如何在紧凑的框架中生成大图像

时间:2010-05-04 08:39:50

标签: c# compact-framework image-processing imaging

我需要在我的紧凑框架应用程序中生成大图像(200 DPI的A4图像,PNG格式没问题)。由于内存限制,这是不可能以标准方式进行的(这样的大图像会抛出OOMException)。

是否有任何提供文件支持的流图像生成的库?

或者我可以使用标准的Bitmap方法生成许多较小的图像条纹(每个条纹代表一个大图像的一行),但我需要将它们合并在一起 - 是否有任何方法如何将许多较小的图像合并为一个大图像无需实例化大型Bitmap实例(这将再次导致OOM)?

3 个答案:

答案 0 :(得分:2)

我自己有类似的需求,最后我自己编写了自己的库。 PNGJ您可能发现它很有用,它是Java,但它应该很容易移植到C#(完全独立于其他库)。它可以写入和读取PNG图像(除了调色板图像),面向行,相当低的水平,针对处理大图像进行了优化。下载中有一些例子。

更新:我在这里提供了一个C#:PNGCS

答案 1 :(得分:1)

这很有趣......我为你做了一些谷歌搜索,我找到的唯一有用的东西是OpenNETCF Smart Device Framework。类库引用为here建议您查看ImagingFactoryClass。 CreateImageEncoderToStream方法可能很有用。

如果您有一个可以为您完成的库,那么合并方法会很酷。我看了一下PNG的规格并不是很有前景。

祝你好运,我希望这会有所帮助。

答案 2 :(得分:1)

我刚刚对PNG流编码类进行了快速的基本实现 - 它目前只支持8bpp和灰度,但这对我的场景来说已经足够了。扩展类以支持RGB和更多颜色深度应该非常容易。

http://gist.github.com/393409