写点什么

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

评论

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

SpringBoot-技术专题-启动原理

码界西柚

光大银行刘淼:基于华为云GaussDB(DWS) 数据仓库创新实践

华为云开发者联盟

数据仓库 数据 huawei

spring-boot-route(十)多数据源切换

Java旅途

Java Spring Boot

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

Java程序员月薪多少K才能在北上广买得起房?

Java架构之路

Java 程序员 编程语言

开源=免费?

Learun

深入分析CRM系统对现代企业的作用

Learun

来不及解释了,快上车!力软快速开发平台,助力企业搭乘万物互联的顺风车

Learun

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

字节跳动 Flink 单点恢复功能实践

Apache Flink

flink

EffectiveJava读书笔记-01-对象创建与销毁

wander

读书笔记 编程开发

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC

比特币 区块链 银行

MySQL-技术专题-问题分析

码界西柚

lldb常用命令与调试技巧

iOSer

ios lldb常用命令 lldb调试技巧

从构建小系统到架构分布式大系统,Spring Boot2的精髓全在这里了

Java架构之路

Java 程序员 面试 Spring Boot 编程语言

程序员去外包真的不可取吗?

Java架构师迁哥

架构师训练营第四周作业

郎哲158

MySQL-技术专题-查询速度性能

码界西柚

Nacos-技术专题-配置中心实现

码界西柚

Python时间序列分析简介(2)

计算机与AI

Python 时间序列

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

国庆期间,我造了台计算机

yes

计算机 底层

互联网应用系统技术方案主要解决什么问题?

博古通今小虾米

2020年秋招阿里136道Java高级岗面试题(含答案及复习资源)

Java架构之路

Java 程序员 面试 算法 编程语言

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者联盟

数据库 开源 数据

架构师训练营1期第三周作业

木头发芽

技术实操丨SoundNet迁移学习之由声音分类到语音情感识别

华为云开发者联盟

AI 数据 语音识别

Web前后端:如何分离,如何解耦?

华为云开发者联盟

大前端 后端 开发

架构师训练营第四章 系统架构总结

郎哲158

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