实用技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > ASP.NET > 实用技巧 > .NET 8 高性能跨平台

.NET 8 高性能跨平台图像处理库 ImageSharp 详解

作者:小码编匠

ImageSharp是.NET8的高性能跨平台图像处理库,适用于多种开发场景,它支持广泛的图像格式和图像处理操作,如调整大小、裁剪、旋转、滤镜效果等,ImageSharp通过NuGet安装简便,易于在项目中集成使用,本文详细介绍了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包管理器安装是最简单的方式,具体如下所示:

Install-Package SixLabors.ImageSharp

或者 VS 直接搜索安装

2、加载图片

使用ImageSharp加载图像非常简单。

/// <summary>
/// 加载图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LoadImage_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog
    {
        Filter = "Image Files|*.jpg;*.jpeg;*.png;*.bmp;*.gif"
    };
    if (openFileDialog.ShowDialog() == true)
    {
        using (FileStream fs = new FileStream(openFileDialog.FileName, FileMode.Open))
        {
            _image = SixLabors.ImageSharp.Image.Load<Rgba32>(fs);
            ImageControl.Source = ConvertToBitmapSource(_image);
        }
    }
}

3、裁剪图片

使用ImageSharp调整图像大小

/// <summary>
/// 裁剪图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CropImage_Click(object sender, RoutedEventArgs e)
{
    if (_image != null)
    {
        _image.Mutate(x => x.Crop(new SixLabors.ImageSharp.Rectangle(100, 100, 200, 200)));
        ImageControl.Source = ConvertToBitmapSource(_image);
    }
}

4、旋转图片

ImageSharp也可以轻松地旋转和翻转图像。

/// <summary>
/// 选择图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RotateImage_Click(object sender, RoutedEventArgs e)
{
    if (_image != null)
    {
        _image.Mutate(x => x.Rotate(90));
        ImageControl.Source = ConvertToBitmapSource(_image);
    }
}

5、运行效果

还有更多效果和方法,大家可以自己试试。

常用方法

常用滤镜

项目地址

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

总结

ImageSharp 是一个功能强大的 .NET 图像处理库,提供了广泛的图像操作选项,包括加载、保存、调整大小、旋转、翻转以及应用各种滤镜和效果。

本文示例仅展示了 ImageSharp 功能的一部分,通过使用ImageSharp库大家可以在项目中轻松实现复杂的图像处理任务。

到此这篇关于.NET 8 高性能跨平台图像处理库 ImageSharp 的文章就介绍到这了,更多相关.NET 8 高性能跨平台内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文