2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

redis优化系列(三)解决主从配置后的常见问题

乌龟哥哥

4月月更

LabVIEW设置应用程序显示标签透明

不脱发的程序猿

LabVIVE 美化应用程序

Scrum Patterns之理解各种团队模式

Bruce Talk

Scrum 敏捷开发 Agile Scrum Patterns

linux之pkill命令

入门小站

14岁懂社会-《给想要成为医生的你》读书笔记

懒时小窝

读书笔记 读书

瑞萨IDE:CS+ for CC新建工程配置方法

不脱发的程序猿

ide 汽车电子 CS+ for CC 瑞萨MCU

LabVIEW显示控件中内容过长设置自动滚动条

不脱发的程序猿

LabVIEW 设置自动滚动条

Robot OS添加开机启动服务

轻口味

android 4月月更 AOSP

LabVIEW修改应用程序窗口外观

不脱发的程序猿

LabVIEW 修改应用程序窗口外观

正确的文档排版方式

源字节1号

【PIMF】OpenHarmony啃论文俱乐部—在ACM Survey闲逛是什么体验

离北况归

ACM OpenHarmony Openharmony啃论文俱乐部 欧建深教练 PIMF团队

读《Software Engineering at Google》(15)

术子米德

架构师成长笔记

瑞萨IDE:CS+ for CC下载、安装和基础使用

不脱发的程序猿

ide 瑞萨 汽车级MCU CS+ for CC

一文搞懂SPI通信协议

不脱发的程序猿

spi 嵌入式 通信协议

DaaS大数据服务简析

穿过生命散发芬芳

4月月更

LabVIEW采集鼠标、键盘数据

不脱发的程序猿

LabVIEW 获取鼠标、键盘输入数据

瑞萨IDE:CS+ for CC进行BootLoader升级时开发环境配置

不脱发的程序猿

嵌入式 汽车电子 MCU 瑞萨 CS+ for CC

SpringCloud Alibaba Nacos 使用详解

牧小农

nacos SpringCloud Alibaba

程序员如何快速开发高质量的代码?

利志分享

Java多线程归纳整理

高山觅流水

多线程

在线时序流程图制作工具

入门小站

工具

手撕《Google SRE Book》

一席

网络安全之渗透靶场实战详解

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

如何发挥测试策略的指导性作用

KJ Meng

DevOps 研发管理 测试 自动化测试 测试策略

在线Excel转CSV工具

入门小站

工具

什么是区块链数字藏品,它具有什么价值?

CECBC

「面向信仰编程」Draven 专访:像写代码一样,用树形的结构写文章

Shopee技术团队

Go 语言 技术播客

feign报400处理

Rubble

4月日更

OpenHarmony开源开发者成长计划,寻找改变世界的开源新生力!

科技汇

网络协议之:sctp流控制传输协议

程序那些事

Java Netty 程序那些事 4月月更

轻量化项目管理思路

秋去冬来春未远

需求管理 问题管理 问题和需求区别

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