- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
imageresing.net社区和开发人员。
请为我澄清有关imageresing.net内部的一些细节。
imageresing.net是否使用.NET绘图库重新压缩jpeg?如果不是,它是否使用第三方引擎或某些内部算法?
有绩效基准吗?我想将imageresing.net与其他库进行比较:libjpeg,英特尔集成性能基元等。
提前致谢,
安东
最佳答案
ImageResizer提供3条成像管线。
GDI +(System.Drawing)默认。 2步高质量双三次预平滑。提供的质量非常快。 (用于调整大小的平均时间为200-300ms。)最近的Windows更新使GDI +并行化差,但是MSFT正在积极研究中。
WIC(WPF也使用什么)。速度提高4-8倍(调整大小时为20-200毫秒)。单遍调整大小会导致大量的波纹现象,并导致模糊(在Fant和Bicubic模式下)。 Windows Imaging Components中没有真正高质量的调整大小。
FreeImage。如果您需要支持DSLR格式或访问Lanczos重采样(顶级质量),则FreeImage是您的库。它比其他方法(通常为800-2400ms)要慢,又大又单片且难以审核,因此我们建议仅将其与受信任的图像数据一起使用。我们使用针对libjpeg-turbo构建的FreeImage的自定义版本,该版本明显快于libjpeg。
您可以混合使用编码器,解码器和(在某种程度上)调整大小算法。出于质量原因,某些算法在内部实现,而大多数算法依赖于C / C ++实现。
如果您关心照片质量,则端到端比较基准测试是荒谬的,因为您永远无法将苹果与苹果进行比较。回到2011, I did some benchmarks between GDI+ and WIC,但是摄影师和图形设计师倾向于发现WIC图像质量不可接受,因此并不特别公平。
我们会定期对每个管道进行基准测试,以检测性能的提高或降低,但是比较管道可能会引起欺骗,原因有很多:
您是否在乎元数据?禁用元数据解析时,libjpeg-turbo读取jpeg的速度(怪异)快2-3倍。如果要基于相机exif数据自动旋转,则需要该信息。
您是否关心颜色正确性? Jpeg不是RGB格式。如果它具有ICC配置文件,则正确的做法是在调整大小之前将其转换为sRGB。太慢了
您是否关心调整质量?有一百种方法可以实现双三次调整大小过滤器。有些快,有些慢,最丑陋,有些准确。 Bicubic WIC!= Bicubic GDI +。如果您对视觉效果很满意,则可以在最近的邻居模式下从ImageResizer WIC端到端获得<20ms。
您是否关心输出文件的大小?如果您愿意花费更多的时钟周期,则可以将PNG / GIF文件的大小减少30-80%,将jpeg的大小减少5-15%。如果您想为每个请求添加150-600毫秒,ImageResizer可以创建将带宽成本减少一半的WebP图像(WebP编码比jpeg昂贵)。
您可以理解微基准(在相同情况下,libjpeg-turbo比libjpeg快40%,等等)。在排除编码,解码和颜色转换之后,您甚至可以比较某些简单的低质量图像调整大小的滤镜(最近邻,框形,双线性)。
问题在于,真正高质量的调整大小真的很复杂,而且从来没有两次以相同的方式实现。数量很少的高质量实现,甚至更少的具有亚秒级性能的实现。我订购了十二本有关图像处理的教科书,以查看是否可以找到参考实现,但是该主题是……大多数人都精明地避免了,而其他人只是简单地谈到了。从未提及边缘像素处理,预过滤和性能优化。
我已经为快速高质量图像调整大小进行了大量研究,但是我们还无法匹配GDI +。 ImageResizer的默认配置往往会在许多类型的图像上超过Photoshop的质量。
根据我们的libgd分叉和自定义大小调整算法,第四条管道可能会在不久的将来添加到ImageResizer中。尚无承诺,但我们可能会提供与GDI +差不多的质量,并具有类似的单线程(但并发性更好)性能。
我们所有的源代码都在GitHub上,因此,如果您快速找到想要作为插件或替代管道进行演示的内容,我们很乐意听到。
关于c# - imageresizer.net性能基准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633900/
在允许 Nuget 将 ImageResizer 3.1.5 更新到版本 3.2.1 后,我的编译失败并出现多个错误(所有相同类型): Error 5 Missing compiler require
我们正在使用 ImageResizer (imageresizing.net) 来生成 PDF 首页的缩略图。它工作得很好(与 ImageResizer 相关的几乎所有其他事情一样),除了我在此处发布
ResizeSettings 的文档说: “被指令类取代” http://documentation.imageresizing.net/docu/ImageResizer/ResizeSetting
我在计算机上旋转了一些图像,但是,图像缩放器一直使用旧方向。当我仅使用图像路径导航到图像时,它显示正常。但是,当我添加 ?h=400 时,它使用的是旧方向。这是什么原因造成的? 最佳答案 您用来旋转图
我们正在使用 imageresizing.net 中的图像调整器,并且看到了一些奇怪的行为。 当我们从流中读取图像然后调整图像大小时,我们无法再访问原始图像的属性。 以下代码将重现该问题。 stat
我正在使用图像调整器 imageresizing.net。但是,当我尝试上传或调整图像大小时,出现错误: The source stream is at the end (have you alrea
我让用户上传最小宽度为 400 像素的横幅。然后这张图片的宽度将达到 1110 像素。我尝试上传以下尺寸的图片:960x390、410x410、784x250。当我上传 784x250 时,图像得到相
我在 Azure Function 中使用 ImageResizer ( https://imageresizing.net/ ) 库,该库返回存储在 Azure 存储帐户中的已调整大小的图像。 到目
imageresing.net社区和开发人员。 请为我澄清有关imageresing.net内部的一些细节。 imageresing.net是否使用.NET绘图库重新压缩jpeg?如果不是,它是否使用
我们即将开始使用 ImageResizer ( http://imageresizing.net/ ),并且我们正在使用 DiskCache 插件。我们担心很容易创建数百万个文件并导致存储问题。 我找
任何人都可以给我任何关于如何使用 CKFinder 的 imageresize 插件的提示或指向文档,我在这方面一无所获? 谢谢, 托比 最佳答案 在 docs.cksource.com 有多种语言的
当我使用 ImageResizer.Net(在 32 位系统上)将图像调整为 9000x9000 正方形时遇到内存不足异常: ImageBuilder.Current.Build(imageFileN
我最近下载了 Image Resizer .Net由于对其提供的内容感兴趣,您可以在我提供的链接中看到三个库,我已经下载了所有这些库。 重建元素,然后导航到我的 View 并为要显示的图像指定宽度、高
我正在动态调整图像大小: ImageJob i = new ImageJob(file, "~/eventimages/_.", new ResizeSettings("width=200&h
当它与 IMG_DATA 一起使用时,我在调整图像大小时遇到错误,但没有错误,但是当它给出此异常 IMG_URI 时 调用resizeImage时出错: 2013-06-26 19:44:30.3
如何在 C# 控制台应用程序中使用 AutoRotate 插件?我想我可以做一些类似 settings.AutoRotate = true; 的事情,比如我可以更改适合模式以使用 seam carvi
我正在尝试调整传入图像的大小,然后对其进行方形裁剪。我的图像在 ReadOnlyStream 中,想输出到 MemoryStream。 我正在使用 ImageResizer图书馆来做到这一点。 我希望
我们正在使用 ImageResizer 模块,带配置的 diskCache 插件 通过此清理配置,我们有 253 个子文件夹,每个子文件夹包含 8000-10000 个文件,还有 3 个子文件夹,
我正在将图像上传到项目中的 azure blob 存储。出于逻辑原因,我为每次上传创建一个新容器,以对内容进行分组。这个公园运作得很好。现在我正在尝试设置 ImageResizer启用调整大小:)和其
我使用ImageResizer在我的网络应用程序中。它可以正确调整页面上大部分图像的大小。但有一组图像是旋转的。所有图像的代码都是相同的。 查看以下link ,如果删除 ?width=500 的查询字
我是一名优秀的程序员,十分优秀!