2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

OpenMAX (OMX)框架

程思扬

音视频 编解码

前端食堂技术周刊第 40 期:HTTP/3、WebContainers 登陆 Firefox、Remix Conf 2022、VueConf US 2022

童欧巴

Vue 前端

模块八

ASCE

企业架构的第一性原理

涛哥 数字产品和业务架构

企业架构

【sql语句基础】——查(select)(单表查询)

写代码两年半

sql MySQL 数据库 数据库· 6月月更

何时使用 Django?与其他开发堆栈的比较

海拥(haiyong.site)

6月月更

八大误区,逐个击破(2):性能差?应用程序少?你对云的这些担心很多余!

龙智—DevSecOps解决方案

Atlassian atlassian云版 Atlassian白皮书

模块八作业

天琪实刚亮

架构训练营

InfoQ 极客传媒 15 周年庆征文|必杀技--使用FFmpeg命令快速精准剪切视频

迷彩

前端 ffmpeg 视频剪辑处理 6月月更 InfoQ极客传媒15周年庆

spring4.1.8扩展实战之一:自定义环境变量验证

程序员欣宸

Java spring Spring Framework 6月月更

leetcode 47. Permutations II 全排列 II(中等)

okokabcd

LeetCode 搜索 数据结构与算法

消息队列存储消息数据的 MySQL 表格

流火

银行布局元宇宙:数字藏品、数字员工成主赛道!

CECBC

提升管道效率:你需要知道如何识别CI/CD管道中的主要障碍

龙智—DevSecOps解决方案

ci CD CloudBees CI/CD管道

功能标记是什么?一文了解它的作用,以及它的最佳实践

龙智—DevSecOps解决方案

perforce Helix Core 功能标记

架构训练模块 7

小马

#架构训练营

什么是数据驱动

奔向架构师

大数据 数据仓库 数据驱动 6月月更

【您编码,我修复】WhiteSource正式更名为Mend

龙智—DevSecOps解决方案

代码安全 WhiteSource Mend

加强区块链技术司法应用

CECBC

【LeetCode】查找和替换模式Java题解

Albert

LeetCode 6月月更

深圳3月14日起全市停工停业7天居家办公心得|社区征文

老周聊架构

后疫情时代企业应对策略 6月月更 初夏征文 高效工具 高效沟通

从源码解析 MobX 响应式刷新机制

岛上码农

flutter ios 前端 安卓 6月月更

Linux开发_文件目录操作介绍、创建BMP图片

DS小龙哥

6月月更

元宇宙是短炒,还是未来趋势?

CECBC

SDN系统方法 | 6. 网络操作系统

俞凡

架构 网络 sdn SDN系统方法

Android MaterialButton使用详解,告别shape、selector

yechaoa

android 6月月更 material design MaterialButton

Node.js实用的内置API(一)

devpoint

node.js 全栈开发 InfoQ极客传媒15周年庆

Vue-7-计算属性和方法的区别

Python研究所

6月月更

合理地配置线程池

急需上岸的小谢

6月月更

1.5 什么是架构师(连载)

凌晞

架构 架构师

NixOS 22.05安装过程记录

sai

NixOS Nix

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