原生.NET PNG图像文件编码器

时间:2010-11-13 15:47:21

标签: .net gdi+ png imaging

这样的编码器存在吗? GDI +一个功能不是很全面。例如,即使您在内存中使用8bpp索引,它也将始终呈现32bpp图像。

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

这个问题没有得到解答的时间越长,PNG specification我会读到的内容越远:)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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