热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

针对.NETCore的图像类库

开发人员在试着使用.NETCore进行应用开发时可能会发现其中一个缺点,那就是缺乏基于图像的API。在那些较流行的API中有值得称道的System.Drawing&#

开发人员在试着使用.NET Core进行应用开发时可能会发现其中一个缺点,那就是缺乏基于图像的API。在那些较流行的API中有值得称道的System.Drawing,但在.NET Core中却无法使用它,因为它依赖于Windows GDI+ 接口。幸运的是,许多开发者社区已经投身其中,去开发支持.NET Core的图像类库。

\u0026#xD;\n\u0026#xD;\n

微软的Bertrand Le Roy提供了一个不同类库的调查比较,以考量它们的适合性,他的初步调查为比较以下四个实现的输出和性能提供了很有价值的参考依据:

\u0026#xD;\n\u0026#xD;\n
  • CoreCompat.System.Drawing\u0026#xD;\n
  • ImageSharp\u0026#xD;\n
  • Magick.NET\u0026#xD;\n
  • SkiaSharp\u0026#xD;\n

开发人员使用已经依赖System.Drawing 的代码将发现CoreCompat.System.Drawing 类图很有帮助,因为它最容易替换。然而,应注意当在Windows上运行时它会遇到死锁问题。

\u0026#xD;\n\u0026#xD;\n

ImageSharp 是一个由纯托管代码编写的新库。这使它具有非常好的跨平台支持能力,未使用原生代价的是牺牲了较高的性能。

\u0026#xD;\n\u0026#xD;\n

Magick.NET 是针对ImageMagick类库的基于.NET的一个包装器。它提供了大量的功能,而且Le Roy认为其产出物具有最好的图像质量,但当前仅支持Windows上的.NET Core。Magick.NET的作者Dirk Lemstra想要提供一个自身跨平台的ImageMagick,以支持其他的平台。

\u0026#xD;\n\u0026#xD;\n

SkiaSharp 有一个针对谷歌Skia跨平台2d图像类库的 .NET包装器,然而这不支持.NET Core。Miguel de Icaza 说为了提供.NET Core支持需要克服这一挑战。

\u0026#xD;\n\u0026#xD;\n

在Le Roy的结论中,哪个类库最合适实际上取决于你的需求。如果你的应用可以容忍潜在的死锁问题,那么CoreCompate.System.Drawing是更为高效的一个选择。Magick.NET 在质量和文件类型的支持上最好。最后一个ImageSharp从纯托管代码中得到了好处,但其性能要落后于其他的类库,由于它正在积极地开发之中,所以在不久的将来可能会得到进一步优化。

\u0026#xD;\n\u0026#xD;\n

查看英文原文:Image Libraries for .NET Core


推荐阅读
  • 如何在Windows 7 64位系统中成功注册DLL文件
    本文详细介绍了在Windows 7 64位系统中注册DLL文件的具体步骤,包括使用管理员权限运行命令提示符以及正确的路径导航方法,确保注册过程顺利进行。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 本文详细介绍了解决Windows 11用户无法使用动态磁贴的问题,提供了一种通过修改注册表来恢复这一功能的方法,适合需要个性化操作界面的用户参考。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 解决Win10 1709版本文件共享安全警告问题
    每当Windows 10发布新版本时,由于兼容性问题往往会出现各种故障。近期,一些用户在升级至1709版本后遇到了无法访问共享文件夹的问题,系统提示‘文件共享不安全,无法连接’。本文将提供多种解决方案,帮助您轻松解决这一难题。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 在iOS开发过程中,当开发团队使用多台Mac设备时,可能会遇到无法继续申请新证书的问题。本文介绍了如何通过导出.p12文件来解决这一问题,并确保团队成员能够在不同设备上共享同一个证书。 ... [详细]
author-avatar
霓Nin氵ini
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有