1

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

有没有提供文件支持的流图像生成的库?

或者我可以使用标准位图方法生成许多较小的图像条纹(每个条纹代表大图像的一行),但我需要在之后将它们合并在一起 - 有没有什么方法可以将许多较小的图像合并成一个大图像而不必实例化大型 Bitmap 实例(这会再次导致 OOM)?

4

3 回答 3

2

我自己也有类似的需求,我结束了编写自己的库。巴布亚新几内亚你可能会发现它很有用,它是 Java,但它应该很容易移植到 C#(完全独立于其他库)。它写入和读取PNG图像(调色板除外),面向行,相当低级,针对处理大图像进行了优化。下载中有一些示例。

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

于 2010-05-04T12:37:28.050 回答
1

这很有趣......我为你做了一些谷歌搜索,我发现唯一有用的是这个OpenNETCF Smart Device Framework。类库参考在这里建议大家看一下 ImagingFactoryClass。CreateImageEncoderToStream 方法可能有用。

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

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

于 2010-05-04T10:03:06.113 回答
1

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

http://gist.github.com/393409

于 2010-05-07T13:26:09.523 回答