写点什么

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

评论

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

PyTorch深度学习实战 | PyTorch环境搭建

TiAmo

PyTorch

深度解析首个Layer3 链 Nautilus Chain,有何优势?

鳄鱼视界

量化合约系统开发(规则开发)丨量化合约开发(源码说明)

系统开发咨询1357O98O718

DAPP/LP单双币(子母币)流动性质押挖矿分红系统开发(开发说明及源码)

系统开发咨询1357O98O718

Matlab常用图像处理命令108例(二)

timerring

图像处理

从设计角度,深入分析 Spring 循环依赖的解决思路

Java spring源码 循环依赖

Guitar Pro8吉他学习辅助软件

茶色酒

Guitar Pro8

EasyRcovery16免费电脑照片数据恢复软件

茶色酒

EasyRcovery16

dapp/lp代币合约流动性质押挖矿分红系统开发详细及案例(源码部署)

系统开发咨询1357O98O718

DAPP马蹄链智能合约系统开发(开发方案及详细)

系统开发咨询1357O98O718

Spring Boot:如何配置Undertow容器?不会我教你 | 超级详细

Java你猿哥

spring Spring Boot 后端 ssm java

三天吃透RabbitMQ面试八股文

程序员大彬

Java RabbitMQ 消息队列

DAPP智能合约链游开发源码案例丨DAPP智能合约链游系统开发(逻辑及方案)

系统开发咨询1357O98O718

One-YOLOv5 v1.2.0发布:支持分类、检测、实例分割

OneFlow

人工智能 深度学习

架构实战 8 - 消息队列MySql表格设计

架构实战营 「架构实战营」

YOLOv5全面解析教程⑥:模型训练流程详解

OneFlow

人工智能 深度学习

【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(上篇)

码界西柚

分布式 2PC 3PC 原理分析 分布式协议

这份Java面试八股文让329人成功进入大厂,堪称2023最强

Java你猿哥

Java 面经 春招 八股文 Java八股文

Kotlin 学习笔记(一)

修之竹

android kotlin

使用OpenAI接口释放ChatGPT API 的力量

devpoint

React nextjs ChatGPT

学会用规则引擎Drools,让你早点下班

小小怪下士

Java 程序员 后端 drools

号外号外!简单几步就能把Pinterest视频下载到手机里啦!

frank

Pinterest

CorelDRAW2023最新版本平面矢量绘图排版软件

茶色酒

CorelDraw2023

Spinner(列表选项框)的基本使用

芯动大师

android spinner galley

LeSS敏捷框架高效生产力实践

俞凡

敏捷开发 大厂实践

为什么 Go 语言 struct 要使用 tags

AlwaysBeta

Go

fcpx专业多媒体剪辑软件:Final Cut Pro X中文激活版

真大的脸盆

Mac 视频剪辑 视频处理 视频剪辑处理

一天吃透Git面试八股文

程序员大彬

git 面试

Kubernetes容器状态探测的艺术

俞凡

Kubernetes 云原生

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