2011-09-02 158 views
9

我经常使用OptiPNG或pngcrush来减小我的PNG图像的文件大小。减少.NET中的PNG文件大小

我希望能够在.NET应用程序中以编程方式执行此类事情。我动态生成发送到移动设备的PNG,所以我想保持文件大小。

图像质量很重要,所以在这种情况下PNG肯定会胜过jpeg。

是否有任何现有的库可用于执行此操作?

+0

你是否在文件大小设置为屏幕大小,或文件最小化像PNGOUT? –

+0

文件最小化如PNGOUT。 OptiPNG和pngcrush是类似的工具。 – teedyay

+2

我不相信那里有任何托管库。 OptiPNG是开源的,所以代码的一个端口是* possible *。或者,虽然我怀疑它会产生结果,但尝试将您的PNG加载为位图(这应该会削减可能会浪费空间的PNG元数据),然后再将其编码为PNG:http://msdn.microsoft.com/ en-us/library/system.windows.media.imaging.pngbitmapencoder.aspx –

回答

1

为什么不尝试使用命令参数运行您在应用程序内命名的任何应用程序。或者,如果这是不可能的,使用Windows自动化。

+1

嗯,这有点不好意思网络服务。我正在通过网络接收文件并调整它们的大小等。 – teedyay

1

退房nQuant在http://nquant.codeplex.com。这将使用完全托管的代码将32位PNG量化为8位,而不需要对C库进行外壳处理。目前它只是一个量化器,并且会一直转换为可能会导致质量损失的8位调色板。我正在研究无损优化功能,希望很快可以使用它。

+0

我真的需要无损,所以我会等着屏住呼吸! – teedyay

+0

对此的任何更新?将png降至绝对最小值的最佳方法是什么? – Don