如何扩展索引的PNG并将其保存在ASP.NET中?

时间:2011-01-02 04:59:19

标签: asp.net wpf gdi+ png

我已经获得了GDI +读取PNG,扩展它(最近邻居)并将其保存,但不幸的是,如果我加载索引的PNG,它仍然将其保存为32位PNG,这是一个很大的浪费

我见过一些很棒的第三方工具可以让你加载/保存PNG,但不幸的是我不相信我的主机会允许它,因为它使用中等信任,这些工具加载COM DLL。

我一直在使用像PngBitmapEncoder这样的WPF库(我正在运行.net 4),但是在制作PNG的缩放副本时,我没有幸运保留索引设置,更不用说了我能够弄清楚如何使用最近邻扩展(我确实在GDI +中工作)。

我搞砸了?是时候开始逐个读取字节了?大声笑。我希望不是因为我当然没有那种背景。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

我假设使用Image :: Save方法来保存PNG。 你怎么称呼保存 - 就像这样:

   CLSID pngClsid;
   GetEncoderClsid(L"image/png", &pngClsid);
   image.Save(L"Mosaic2.png", &pngClsid, NULL);

第三个参数(在上面的示例中为NULL)指定了特定于编码器的参数 - 在本例中为PNG编码器。

您是否检查过PNG编码器支持的参数?也许你可以指定colorDepth。

获取编码器的参数: