0

这样的编码器存在吗?GDI+ 的功能不是很全。例如,它总是会渲染出 32bpp 的图像,即使您使用的是 8bpp 的内存索引。

我即将开始从 Web 服务器上写出很多 PNG,这些 PNG 应该是 8bpp 的透明索引(PNG 支持调色板中的 alpha 级别)。出于性能原因,我想使用本机 .NET(和不安全的代码)来执行此操作,因此请不要建议ImageMagickFreeImage

这个问题悬而未决的时间越长,我将阅读的PNG 规范越深入:)

4

2 回答 2

2

使用 PngBitmapEncoder 类,它在幕后使用 WIC。FormatConvertedBitmap 类帮助您设置调色板并进行像素格式转换。至少需要 .NET 3.0。

于 2010-11-13T16:24:22.517 回答
1

您还可以在http://nquant.codeplex.com查看 nQuant 。如果您将 GDI+ 32 位位图实例传递给它,它将返回一个 8 位 256 色索引调色板图像。如果原始图像是 8 位,则此转换应该是无损的。

这是一个没有依赖关系的香草 C# 编写的库。

于 2011-09-11T20:06:10.033 回答