我已经获得了GDI +读取PNG,扩展它(最近邻居)并将其保存,但不幸的是,如果我加载索引的PNG,它仍然将其保存为32位PNG,这是一个很大的浪费
我见过一些很棒的第三方工具可以让你加载/保存PNG,但不幸的是我不相信我的主机会允许它,因为它使用中等信任,这些工具加载COM DLL。
我一直在使用像PngBitmapEncoder这样的WPF库(我正在运行.net 4),但是在制作PNG的缩放副本时,我没有幸运保留索引设置,更不用说了我能够弄清楚如何使用最近邻扩展(我确实在GDI +中工作)。
我搞砸了?是时候开始逐个读取字节了?大声笑。我希望不是因为我当然没有那种背景。任何帮助非常感谢。答案 0 :(得分:0)
我假设使用Image :: Save方法来保存PNG。 你怎么称呼保存 - 就像这样:
CLSID pngClsid;
GetEncoderClsid(L"image/png", &pngClsid);
image.Save(L"Mosaic2.png", &pngClsid, NULL);
第三个参数(在上面的示例中为NULL)指定了特定于编码器的参数 - 在本例中为PNG编码器。
您是否检查过PNG编码器支持的参数?也许你可以指定colorDepth。
获取编码器的参数: