C#:寻求 PNG 压缩算法/库 [关闭]

2024-01-03

我需要压缩或至少降低用户上传到我的网站的一些 png 图像的质量。我已经调整了它的大小,但这对图像大小没有多大作用。

寻求 .net 4.0 或更低版本的 png/图像压缩或质量损失算法或库。


这就是我目前保存/转换图像的方式:

Image mainImg = ImageHelper.ResizeImage(bmp, 600, 500, false);
mainImg.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);

不幸的是,.NET(以及构建 .NET 图形库的 GDI+)不支持 PNG 的任何编码参数。事实上,如果您使用 PNG 编码器 Clsid 对图像调用 GetEncoderParameterList,您将收到“未实现”异常。

更不幸的是,ImageFormat 和 ImageCodecInfo 都是密封类,您不能只是将新的编解码器添加到 .NET 本身可以访问的内容中。微软在这一点上失败了。

这意味着你的选择是,按照受虐狂的降序排列: 1)在实现RFC 2083的.NET中自行实现保存功能, 2) 基于将 libpng 移植到 .NET 实现保存功能, 3)直接调用从libpng构建的非托管代码

libpng 拥有丰富的文档,并且在可用性和许可许可方面都是免费的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#:寻求 PNG 压缩算法/库 [关闭] 的相关文章