我想压缩位图到不同的压缩级别的PNG,因为这些级别在C#中的JPEG压缩可用。我有20到30张不同大小的图片在1秒内处理。是否有任何库在不同压缩级别的PNG中实现这种压缩?PNG压缩.net
回答
根据此回答C#: Seeking PNG Compression algorithm/library C#中的PNG是一个无损压缩库,例如,不支持多个质量级别。
对PNG的wiki页面(http://en.wikipedia.org/wiki/Portable_Network_Graphics)似乎印证了压缩格式为无损(如只有一个压缩级别)
一些谷歌搜索建议没有对PNG
有损版本也许他在问如何改变比特深度? “ – deerchao
”似乎证实压缩格式是有损的“如果我错了,请纠正我,但png是无损和无损的... – Peter
感谢Petoj更新了我的错字 – davidxmiller
无损研究压缩方法不一定是单一质量等级。我的意思是,一些无损压缩方法有一些参数来选择速度/压缩比的权衡。这取决于作者。
对于PNG压缩,它实际上是一堆过滤器和放气算法。考虑到deflate具有冗余编码阶段(例如,两个不同的压缩器可以产生完全不同的输出,但它们仍然可以被任何有效的解压缩器解压缩),所以难怪几个程序输出不同的PNG。请注意,我仍未考虑过滤器。有几个过滤器,没有“最佳”过滤器,即其质量因图像而异。
由于它是多余的功能,有些人写了PNG优化器,它将一个普通的PNG作为输入来生成较小的PNG,而没有任何感知损失。其中一些应用一些技巧,例如用一些可预测的颜色填充完全透明的区域以增加压缩。但是,总的来说,它们以蛮力的方式调整参数。现在
,你的问题简单的答案可能是因为你有两个选择:
- 如果你要运行在桌面环境的可执行文件,您可以使用these tools一个作为优化。但是,在共享主机中,由于可能的权限,您无法使用它们。
- 你可以在.NET中编写你自己的PNG编写器,它考虑到一些蛮力参数调整。
- 1. 压缩的PNG
- 2. Basic4Android PNG压缩
- 3. PNG压缩
- 4. Nginx PNG压缩
- 5. 用Java压缩PNG
- 6. PHP GD压缩PNG,但不压缩Jpeg
- 7. png文件的压缩和解压缩
- 8. 解压缩(解压缩)由.net压缩(解压缩)的文件.net system.io.compression.gzipstream
- 9. 使用zlib解压缩PNG
- 10. 压缩用于CIFilter的PNG
- 11. PNG压缩与PHP magickwand
- 12. XCode png压缩问题
- 13. GetDIBits()与PNG压缩失败
- 14. ProtoBuf-Net已压缩的压缩?
- 15. .NET图像压缩
- 16. .NET使用压缩和非压缩数据压缩文件
- 17. ImageResizer中是否有像PNY压缩一样的PNG压缩?
- 18. rmagick压缩和转换PNG至JPG
- 19. 在PHP中压缩PNG文件
- 20. PNG压缩在opencart不工作
- 21. 如何在Swift中压缩PNG文件?
- 22. C#:寻求PNG压缩算法/库
- 23. Xcode中需要什么PNG压缩?
- 24. three.js使用PNG进行纹理压缩
- 25. ZLib位深度为1的PNG压缩
- 26. 使用ImageAlpha和ImageOptim压缩PNG?
- 27. 最坏的PNG压缩方案
- 28. C#/ .Net的压缩组件
- 29. YUI压缩机对于.NET
- 30. .Net Core/DNX和WebApi压缩
Is [this](http://msdn.microsoft.com/en-us/library/aa970062.aspx)有用吗?如果您已经知道如何创建PNG并只想优化它,可以使用[此工具](http://advsys.net/ken/util/pngout.htm)并通过Process.Start()执行它[方法。 –