我需要在我的紧凑框架应用程序中生成大图像(200 DPI 的 A4 图像,PNG 格式就可以了)。由于内存限制,这是不可能以标准方式完成的(如此大的图像会抛出 OOMException)。
有没有提供文件支持的流图像生成的库?
或者我可以使用标准位图方法生成许多较小的图像条纹(每个条纹代表大图像的一行),但我需要在之后将它们合并在一起 - 有没有什么方法可以将许多较小的图像合并成一个大图像而不必实例化大型 Bitmap 实例(这会再次导致 OOM)?
我需要在我的紧凑框架应用程序中生成大图像(200 DPI 的 A4 图像,PNG 格式就可以了)。由于内存限制,这是不可能以标准方式完成的(如此大的图像会抛出 OOMException)。
有没有提供文件支持的流图像生成的库?
或者我可以使用标准位图方法生成许多较小的图像条纹(每个条纹代表大图像的一行),但我需要在之后将它们合并在一起 - 有没有什么方法可以将许多较小的图像合并成一个大图像而不必实例化大型 Bitmap 实例(这会再次导致 OOM)?
这很有趣......我为你做了一些谷歌搜索,我发现唯一有用的是这个OpenNETCF Smart Device Framework。类库参考在这里建议大家看一下 ImagingFactoryClass。CreateImageEncoderToStream 方法可能有用。
如果您有一个可以为您完成合并的库,那么合并方法会很酷。我看了一下PNG规范,它不是很有希望。
祝你好运,我希望这会有所帮助。
我刚刚快速实现了 PNG 流编码类的基本实现——虽然它目前只支持 8bpp 和灰度,但这对于我的场景来说已经足够了。扩展该类以支持 RGB 和更多颜色深度应该很容易。