.NET中最快的图像大小调整
.net
c#
image
image-processing
5
0

我需要最快的库来将全尺寸图像(某些最大为9MB)调整为多种尺寸

这是场景:

  • 用户上传照片
  • FileSystemWatcher在服务中运行,以监视放置位置(在SAN上)
  • 当出现新照片时,该服务将以完全JPEG质量创建4个版本的图像:
    • 100px宽
    • 宽320像素
    • 640px宽
    • 1280宽

只要该库是C / C ++或其他任何东西,我都不会大惊小怪,只要我可以通过.NET对其进行访问就可以了。

同样,这将需要扩展到可能的1,000个活跃用户。

让我知道你的想法 :)

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

这是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类

收藏
评论

我推荐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

收藏
评论

如果钱不是问题,那么LeadTools是用于图像处理的传统“转到”库。话虽这么说,我的初衷是使用股票.NET GDI +调用对其进行编码,然后进行一些测试。该解决方案可能会足够有效,但是如果没有,您将拥有一个基准,可以从中比较其他库和解决方案。任何涉及生成命令行工具的操作都将需要为每个映像创建一个单独的进程,这可能会抵消使用非托管代码的好处。

收藏
评论

那里有很多文章介绍了这一基础 。我使用了Atalasoft的组件,发现它们的质量很好。在调整大小和处理JPEG图像方面存在细微差别。

您似乎真的很在意性能,但是您没有提供足够的信息来帮助我们为您提供良好的优化建议。无论您做什么,都需要进行完整的性能分析并了解运行缓慢的原因。在某些情况下,如果对其他方面进行了优化,则速度较慢但可维护的图像处理代码可能没问题。

一种获得良好性能的解决方案是将需要转换的传入文件排队。添加更多计算机以处理队列中的更多消息,或者优化服务代码以获得更好的吞吐量。如果您设计正确,那么处理大量用户实际上并不难。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号