imageresing.net社区和开发者。
请告诉我有关imageresing.net内部的一些细节。
imageresing.net是否使用.NET绘图库重新压缩jpegs?如果不是 - 它是使用第三方引擎还是某些内部算法?
是否有性能基准?我想将imageresing.net与其他库进行比较:libjpeg,Intel Integrated Performance Primitives等。
提前致谢,
安东
答案 0 :(得分:7)
ImageResizer提供3条成像管道。
您可以混合和匹配编码器,解码器和(在某种程度上)调整大小算法。出于质量原因,一些算法在内部实现,而大多数算法在C / C ++中以依赖关系实现。
如果您关心照片质量,那么端到端比较基准测试是一种荒谬,因为您永远无法比较苹果和苹果。回到2011, I did some benchmarks between GDI+ and WIC,但摄影师和图形设计师倾向于发现WIC图像质量不可接受,所以它不是特别公平。我们会定期对每个管道进行基准测试,以检测性能改进或回归,但比较管道可能会出于多种原因具有欺骗性:
你可以理解微基准(在相同的情况下,libjpeg-turbo比libjpeg快40%等)。在排除编码,解码和颜色转换后,您甚至可以比较某些简单的低质量图像大小调整滤镜(最近邻,框,双线性)。
问题在于真正高质量的调整大小非常复杂,并且从未以相同的方式实现两次。有少量高质量的实现,甚至更小的数字具有亚秒级性能。我订购了十几本关于图像处理的教科书,看看我是否能找到一个参考实现,但主题是......大多数都是专家避免的,只是被其他人简单介绍过。 从未提及边缘像素处理,预过滤和性能优化。
我已经为快速高质量的图像大小调整提供了大量研究,但我们还没有能够匹配GDI +。 ImageResizer的默认配置往往会在许多类型的图像上击败Photoshop质量。
根据我们的libgd分支和自定义大小调整算法,可能会在不久的将来将第四个管道添加到ImageResizer。目前还没有承诺,但是我们可能会像GDI +那样拥有几乎的高质量,具有类似的单线程(但更好的并发)性能。
我们所有的源代码都在GitHub上,所以如果你发现一些你想要作为插件或替代管道进行演示的快速内容,我们很乐意听到它。