2010-05-04 120 views
1

我需要在我的紧凑框架应用程序中生成大图像(200 DPI下的A4图像,PNG格式将会很好)。由于内存限制,这是不可能以标准方式完成的(这样的大图将引发OOMException)。如何在紧凑框架中生成大图像

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

或者我可以使用标准的位图方法生成很多较小的图像条纹(每个条纹表示一行大图像),但是我需要将它们合并在一起 - 是否有任何方法可以将许多较小的图像合并为一个大而不必实例化大的位图实例(这又会导致OOM)?

回答

1

我只是做了PNG流编码类的快速基本实现 - 它支持只是此刻虽然8bpp的和灰度,但是这足以让我的方案。扩展类以支持RGB和更多颜色深度应该很容易。

http://gist.github.com/393409

1

这很有意思......我为你做了一些Google搜索,我发现的唯一有用的东西是OpenNETCF Smart Device Framework。类库参考是here建议您查看ImagingFactoryClass。 CreateImageEncoderToStream方法可能很有用。

如果你有一个图书馆可以为你做,合并方法将很酷。我看了一下PNG的规格,它不是很有希望。

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

+0

我已经使用OpenNetCF自卫队,但忽略了CreateImageEncoderToStream方法。将看看它,并报告任何进展.. – Buthrakaur 2010-05-04 12:20:14

2

我有一个类似的需求我自己,我结束写我自己的图书馆。 PNGJ您可能会发现它很有用,它是Java,但它应该很容易移植到C#(完全独立于其他库)。它会写入并读取PNG图像(除调色板以外),面向行的,相当低级别的,用于处理巨大图像的优化。下载中有一些例子。

更新:我做了可以在这里找到一个C#:PNGCS

+0

看起来很有希望 - 我会尝试重写它。净,如果我没有找到任何其他方法如何解决这个问题。谢谢 – Buthrakaur 2010-05-04 12:48:35