在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

针对.NET Core 的图像类库

  • 2017-02-07
  • 本文字数:748 字

    阅读完需:约 2 分钟

开发人员在试着使用.NET Core 进行应用开发时可能会发现其中一个缺点,那就是缺乏基于图像的 API。在那些较流行的 API 中有值得称道的 System.Drawing,但在.NET Core 中却无法使用它,因为它依赖于 Windows GDI+ 接口。幸运的是,许多开发者社区已经投身其中,去开发支持.NET Core 的图像类库。

微软的 Bertrand Le Roy 提供了一个不同类库的调查比较,以考量它们的适合性,他的初步调查为比较以下四个实现的输出和性能提供了很有价值的参考依据:

  • CoreCompat.System.Drawing

  • ImageSharp

  • Magick.NET

  • SkiaSharp

开发人员使用已经依赖 System.Drawing 的代码将发现 CoreCompat.System.Drawing 类图很有帮助,因为它最容易替换。然而,应注意当在 Windows 上运行时它会遇到死锁问题。

ImageSharp 是一个由纯托管代码编写的新库。这使它具有非常好的跨平台支持能力,未使用原生代价的是牺牲了较高的性能。

Magick.NET 是针对 ImageMagick 类库的基于.NET 的一个包装器。它提供了大量的功能,而且 Le Roy 认为其产出物具有最好的图像质量,但当前仅支持 Windows 上的.NET Core。Magick.NET 的作者 Dirk Lemstra 想要提供一个自身跨平台的 ImageMagick,以支持其他的平台。

SkiaSharp 有一个针对谷歌 Skia 跨平台 2d 图像类库的 .NET 包装器,然而这不支持.NET Core。Miguel de Icaza 为了提供.NET Core 支持需要克服这一挑战。

在Le Roy 的结论中,哪个类库最合适实际上取决于你的需求。如果你的应用可以容忍潜在的死锁问题,那么CoreCompate.System.Drawing 是更为高效的一个选择。Magick.NET 在质量和文件类型的支持上最好。最后一个ImageSharp 从纯托管代码中得到了好处,但其性能要落后于其他的类库,由于它正在积极地开发之中,所以在不久的将来可能会得到进一步优化。

查看英文原文 Image Libraries for .NET Core

2017-02-07 18:004197

评论

发布
暂无评论
发现更多内容

全国独家 | 上海线下面授大规模敏捷LeSS认证 | 2022年12月8-10日

ShineScrum

less 大规模敏捷 LeSS认证 吕毅老师

注意 ! !|95% 的应用程序中发现错误配置和漏洞

SEAL安全

配置管理 软件供应链安全 漏洞管理

AntDB入选《2022爱分析·信创厂商全景报告》

亚信AntDB数据库

AntDB 信创 国产数据库 aisware antdb AntDB数据库

React源码中的dom-diff

夏天的味道123

React

10年码农生涯经验总结,聊聊工作中18种接口优化方案!

Java全栈架构师

Java 数据库 程序员 程序人生 性能优化

# 分布式数据库新秀TIDB初探

TiDB 社区干货传送门

TiDB 底层架构 TiDB 源码解读

技术分享 | TiUP工具 - TiDB集群滚动升级核心流程解析

TiDB 社区干货传送门

react源码中的hooks

flyzz177

React

react源码中的fiber架构

flyzz177

React

React生命周期深度完全解读

夏天的味道123

React

TiFlash 源码阅读(六) DeltaTree Index 的设计和实现分析

TiDB 社区干货传送门

React的5种高级模式

夏天的味道123

React

教你一招,安全的从 MySQL 切换到 TiDB

TiDB 社区干货传送门

迁移 实践案例

将业务从mysql迁移至TIDB,有哪些需要注意的?

TiDB 社区干货传送门

管理与运维 应用适配 大数据场景实践

《关键信息基础设施安全保护要求》于明年五月正式实施

行云管家

网络安全

使用Docker踩坑,排查完问题之后,又涨知识了

程序员小毕

Java Docker 程序员 程序人生 后端

【专项测试系列】-缓存击穿、穿透、雪崩专项测试

京东科技开发者

缓存 测试 缓存穿透 缓存击穿 缓存雪崩

Fiori Elements 应用进行二次开发的一个具体案例分享

汪子熙

SAP Fiori ui5 Web应用 11月月更

云安全系列3:如何构建云安全策略

HummerCloud

云计算 数据安全 云安全 11月月更

CQRS与Event Sourcing

胖子笑西风

架构 DDD CQRS Event Sourcing #java

《全国一体化政务大数据体系建设指南》发布,隐私计算将如何发挥作用?

洞见科技

详解Native Memory Tracking之追踪区域分析

华为云开发者联盟

开发 内存 华为云

GaussDB CN服务异常实例分析

华为云开发者联盟

数据库 华为云 GaussDB

低代码实现探索(五十三)后台逻辑的控制

零道云-混合式低代码平台

谈谈前端应用里图标(Icon)的渲染和内容提取方式

汪子熙

前端开发 SAP ui5 Web应用 11月月更

年搜索量超7亿次背后:这款APP用火山引擎 DataTester 完成“数据驱动”

字节跳动数据平台

大数据 数据分析 A/B测试

阿里云架构师张先国:揭秘ECS倚天实例背后的技术

云布道师

算力 云栖大会 倚天实例

react源码中的协调与调度

flyzz177

React

Go类型转换和类型断言可别搞混了

王中阳Go

golang 高效工作 学习方法 面试题 11月月更

技术分享 | 多测试环境的动态伸缩实践

LigaAI

云原生 自动化测试框架 测试环境 测试自动化 kubenetes

针对.NET Core的图像类库_.NET_Jeff Martin_InfoQ精选文章