最快的图像在大小调整.NET [关闭](Fastest Image Resizing in .NET

2019-06-27 00:41发布

我需要最快库来调整全尺寸的图像(有的高达9MB大小),以多种尺寸

这里的之情况:

  • 用户上传照片
  • 一个FileSystemWatcher的是在服务运行看放置位置(SAN上)
  • 当一个新的照片显示,该服务将创建4个版本全质量JPEG图像:
    • 100像素宽
    • 320像素宽
    • 640像素宽
    • 1280广

如果库是C / C ++或任何其他为此事我没有大惊小怪,只要我可以通过.NET挖掘它,它很酷。

此外,这将需要将规模扩大到1000有可能活跃用户。

让我知道你的想法 :)

Answer 1:

有很多的文章在那里展示的这个基础 。 我用从组件Atalasoft ,并发现他们是相当不错的品质。 有细微的差别调整,并与JPEG图像的工作。

你似乎是真正关心的性能,但你真的不提供足够的信息,以帮助我们为您推荐好的优化。 不管你在做什么,你需要做一个全面的性能分析和理解什么是运行缓慢。 在某些情况下,如果其他的事情进行了优化slowish,但维护的图像处理代码可能会确定。

良好性能的一个解决方案是队列需要转换传入的文件。 添加更多的机器在队列中处理更多的信息,或优化服务代码,以获得更好的吞吐量。 这真的不是很难处理大量用户的,如果你得到的设计权。



Answer 2:

这里的WinForms方式

public Image ResizeImage( Image img, int width, int height )
{
    Bitmap b = new Bitmap( width, height ) ;
    using(Graphics g = Graphics.FromImage( (Image ) b ))
    {       
         g.DrawImage( img, 0, 0, width, height ) ;
    }

    return (Image ) b ;
}

这里是WPF的方式TransformedBitmap类



Answer 3:

我建议ImageResizer

主要特点是:

  • RESTful的基于URL的图像API(例如:SRC = “img.jpg W = 170?”)
  • 直观地裁剪,调整大小,旋转,翻转,约束和编码
  • 渲染PDF转换为图片
  • 19个免费插件,涵盖最常用的任务
  • 磁盘+记忆输入/输出缓存
  • 8位PNG / GIF&动画GIF处理
  • 灵活的文本和图像覆盖支持
  • 图像过滤套件(需要许可证)
  • 高性能
  • 和更多 ....

对于安装的NuGet:

PM> Install-Package ImageResizer.MvcWebConfig
PM> Install-Package ImageResizer.Plugins.DiskCache
PM> Install-Package ImageResizer.Plugins.PrettyGifs

欲了解更多信息,请查询: http://imageresizing.net/docs/install/nuget



Answer 4:

如果钱是没有对象,LEADTOOLS是传统的“去”库进行图像处理。 话虽这么说,我的第一个倾向是用股票.NET GDI +调用它的代码了,然后做一些测试。 很可能这个解决方案就足够了高性能,但如果没有,你就会有一个底线,从中可以比较其他图书馆和解决方案。 任何涉及产卵的命令行工具将需要创建用于每个图像,这可能否定的去非托管代码的益处的单独过程。



Answer 5:

我不知道性能,但开源的OpenCV是一个选项。

空隙cvResize(常量CvArr * I,CvArr *∫,INT插值= CV_INTER_LINEAR);

该功能cvResize调整大小的图像我这样,如果投资回报率设置使其完全适合于J.,功能consideres的投资回报率,支持如常。 使用用于确定在其上最小值截取的像素邻域的形状指定结构元素B中的源图像:



文章来源: Fastest Image Resizing in .NET [closed]