QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

针对.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:003764

评论

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

财经大课:如何看待规模化与差异化竞争

石云升

财经思维 9月日更

北鲲云超算平台如何帮助现代生物制药发展?

北鲲云

HTTP系列之:HTTP中的cookies

程序那些事

Java 网络协议 HTTP cookies

Go 专栏|复合数据类型:数组和切片 slice

AlwaysBeta

Go 语言

看云起云动 览开源盛世 | 亚马逊云科技中国峰会Dev Day线上来袭!

亚马逊云科技 (Amazon Web Services)

网络攻防学习笔记 Day124

穿过生命散发芬芳

9月日更 互联网安全

ShardingSphere 语句解析生成初探

源码 ShardingSphere

LeetCode刷题278-简单-第一个错误版本

ベ布小禅

9月日更

【报名】飞桨中国行丨企业零门槛AI创新应用-智能制造专场

百度大脑

人工智能

数字人民币最新技术成果将亮相2021年服贸会

CECBC

链路压测中各接口性能统计

FunTester

性能测试 测试框架 测试开发 FunTester 链路测试

(深入篇)漫游语音识别技术—带你走进语音识别技术的世界

声网

深度学习 音视频 语音识别

线程同步类CyclicBarrier在性能测试集合点应用

FunTester

多线程 性能测试 线程安全 测试框架 FunTester

Go 专栏|基础数据类型:整数、浮点数、复数、布尔值和字符串

AlwaysBeta

Go 语言

Linux之lastlog命令

入门小站

Linux

重磅!博睿数据通过CMMI5级评估,国内APM领域首家

博睿数据

数据结构和算法在流程画布中的实际应用

GrowingIO技术专栏

数据结构 G6 图可视化引擎 流程画布

🐦【Mybatis开发指南】如何清晰的解决出现「多对一模型」和「一对多模型」的问题

码界西柚

Java mybatis mybatis配置 9月日更

未来10年,5个C/C++吃香的细分领域技术

奔着腾讯去

云原生 网络安全 音视频 DPDK 虚拟化技术

Go 专栏|复合数据类型:字典 map 和 结构体 struct

AlwaysBeta

Go 语言

Go 专栏|流程控制,一网打尽

AlwaysBeta

Go 语言

Go 专栏|说说方法

AlwaysBeta

Go 语言

Go 专栏|接口 interface

AlwaysBeta

Go 语言

以两军问题为背景来演绎BasicPaxos

OpenIM

MySQL 获取表的信息

玄兴梦影

MySQL 数据库表 查询语句

【HTML5游戏】从敲打空格键开始

devpoint

HTML5游戏 9月日更

Java + opencv 实现图片修复(图片去水印)

张音乐

Java OpenCV 音视频 9月日更 图片去水印

Linux内核四大核心框架

hanaper

Go 专栏|函数那些事

AlwaysBeta

Go 语言

Go 专栏|错误处理:defer,panic 和 recover

AlwaysBeta

Go 语言

Go 专栏|变量和常量的声明与赋值

AlwaysBeta

Go 语言

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