ToB企服应用市场:ToB评测及商务社交产业平台

标题: .NET 8 高性能跨平台图像处理库 ImageSharp [打印本页]

作者: 乌市泽哥    时间: 2024-11-6 13:18
标题: .NET 8 高性能跨平台图像处理库 ImageSharp
前言

传统的 System.Drawing 库功能丰富,但存在平台限制,不适用于跨平台开辟。.NET 8 的发布,ImageSharp 成为了一个更好的选择。
ImageSharp 是一个完全开源、高性能且跨平台的图像处理库,专为 .NET 设计。它提供丰富的图像处理功能和出色的性能,适用于桌面应用、Web 应用和云端服务。
本文将介绍 ImageSharp 的主要特点和基本用法,帮助大家快速上手这个强大的工具。
项目介绍

一款完全托管的高性能、跨平台图形库,支持在任何 .NET 6+ 环境中安装和使用。它适用于多种场景,包括装备端、云端、嵌入式和物联网等。
ImageSharp 功能丰富且使用简单,常见的操作只需几行代码即可完成。它支持多种图像格式,如 JPEG、BMP、GIF、PNG、TIFF、WebP 和 QOI 等。同时,它支持超过 25 种像素格式,并提供元数据编辑(如 IPTC、EXIF、XMP)和色彩空间转换(如 RGB、CMYK、灰度、CIELab)功能。
另外,ImageSharp 提供了超过 40 种常见的图像处理操作,性能出色且内存友好,可以或许处理任意尺寸的图像,包括数百万像素的大图。
项目使用

1、安装依赖库
起首需要将其添加到本身的项目中。通过NuGet包管理器安装是最简单的方式,具体如下所示:
  1. Install-Package SixLabors.ImageSharp
复制代码
或者 VS 直接搜索安装

2、加载图片
使用ImageSharp加载图像非常简单。
  1. /// <summary>
  2. /// 加载图片
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void LoadImage_Click(object sender, RoutedEventArgs e)
  7. {
  8.     OpenFileDialog openFileDialog = new OpenFileDialog
  9.     {
  10.         Filter = "Image Files|*.jpg;*.jpeg;*.png;*.bmp;*.gif"
  11.     };
  12.     if (openFileDialog.ShowDialog() == true)
  13.     {
  14.         using (FileStream fs = new FileStream(openFileDialog.FileName, FileMode.Open))
  15.         {
  16.             _image = SixLabors.ImageSharp.Image.Load<Rgba32>(fs);
  17.             ImageControl.Source = ConvertToBitmapSource(_image);
  18.         }
  19.     }
  20. }
复制代码
3、裁剪图片
使用ImageSharp调整图像大小
  1. /// <summary>
  2. /// 裁剪图片
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void CropImage_Click(object sender, RoutedEventArgs e)
  7. {
  8.     if (_image != null)
  9.     {
  10.         _image.Mutate(x => x.Crop(new SixLabors.ImageSharp.Rectangle(100, 100, 200, 200)));
  11.         ImageControl.Source = ConvertToBitmapSource(_image);
  12.     }
  13. }
复制代码
4、旋转图片
ImageSharp也可以轻松地旋转和翻转图像。
  1. /// <summary>
  2. /// 选择图片
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void RotateImage_Click(object sender, RoutedEventArgs e)
  7. {
  8.     if (_image != null)
  9.     {
  10.         _image.Mutate(x => x.Rotate(90));
  11.         ImageControl.Source = ConvertToBitmapSource(_image);
  12.     }
  13. }
复制代码
5、运行结果
还有更多结果和方法,大家可以本身试试。

常用方法

常用滤镜

项目地址

GitHub:https://github.com/SixLabors/ImageSharp
总结

ImageSharp 是一个功能强大的 .NET 图像处理库,提供了广泛的图像操作选项,包括加载、保存、调整大小、旋转、翻转以及应用各种滤镜和结果。
本文示例仅展示了 ImageSharp 功能的一部分,通过使用ImageSharp库大家可以在项目中轻松实现复杂的图像处理任务。
希望本文能在图像处理开辟方面为各位提供有益的帮助。等候大家在评论区留言交流,分享您的宝贵经验和建议。
末了

如果你以为这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继承分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以到场微信公众号[DotNet技能匠] 社区,与其他热爱技能的同行一起交流心得,共同成长!良好是一种风俗,欢迎大家留言学习!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4