首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ImageSharp:高性能跨平台.NET开源图形库

在.Net中,System.Drawing有平台限制的问题,如果需要跨平台就需要使用第三方库。

今天推荐一个.NET开源图形库,不依赖任何库,支持跨平台的图形库。

01

项目简介

ImageSharp是一款完全托管的代码库,高性能、跨平台的图形库。它支持在任何支持.NET 6+的环境中安装和使用,可以运用在各种场景:设备端,云端以及嵌入式和物联网等。

ImageSharp功能非常丰富,使用简单,常见的操作只需几行代码就可以完成。它支持jpeg、bmp、gif、pbm、png、tga、tiff、webp和qoi等多种图像格式。

同时ImageSharp支持超过25种不同的像素格式,并支持对元数据编辑(如IPTC EXIF、XMP)和色彩空间转换(如RGB、CMYK、灰度、CIELab等)功能。

此外,它还提供了超过40种常见的图像处理操作,性能出色且内存友好,能够处理任何尺寸的图像,包括数百万像素的大图。

02

使用方法

1、安装依赖库

Install-Package SixLabors.ImageSharp

2、调整图像大小

using SixLabors.ImageSharp;using SixLabors.ImageSharp.PixelFormats;using SixLabors.ImageSharp.Processing;

// 加载图像 using (var image = Image.Load<Rgba32>("demo.jpg")){ // 调整图像大小 image.Mutate(x => x.Resize(100, 100));

// 保存调整大小后的图像 image.SaveAsJpeg("resized_image.jpg");}

3、应用滤镜(例如灰度效果)

using SixLabors.ImageSharp;using SixLabors.ImageSharp.PixelFormats;using SixLabors.ImageSharp.Processing;

// 加载图像 using (var image = Image.Load<Rgba32>("demo.jpg")){ // 应用灰度滤镜 image.Mutate(x => x.Grayscale());

// 保存应用滤镜后的图像 image.SaveAsJpeg("grayscale_image.jpg");}

4、裁剪图像

using SixLabors.ImageSharp;using SixLabors.ImageSharp.PixelFormats;using SixLabors.ImageSharp.Processing;

// 加载图像 using (var image = Image.Load<Rgba32>("demo.jpg")){ // 裁剪图像 var rectangle = new Rectangle(100, 100, 200, 200); // x, y, width, height image.Mutate(x => x.Crop(rectangle));

// 保存裁剪后的图像 image.SaveAsJpeg("cropped_image.jpg");}

5、旋转图像

using SixLabors.ImageSharp;using SixLabors.ImageSharp.PixelFormats;using SixLabors.ImageSharp.Processing;

// 加载图像 using (var image = Image.Load<Rgba32>("demo.jpg")){ // 旋转图像 90 度 image.Mutate(x => x.Rotate(90));

// 保存旋转后的图像 image.SaveAsJpeg("rotated_image.jpg");}

6、绘制文字图形

using SixLabors.Fonts;using SixLabors.ImageSharp;using SixLabors.ImageSharp.Drawing.Processing;using SixLabors.ImageSharp.Formats.Png;using SixLabors.ImageSharp.PixelFormats;using SixLabors.ImageSharp.Processing;using System.Numerics;

// 加载字体文件 var fontCollection = new FontCollection();fontCollection.Add("C:\\Windows\\Fonts\\STZHONGS.TTF"); // 替换为您的字体文件路径 var fontFamily = fontCollection.Get("STZhongsong"); // 替换为字体名称 var font = fontFamily.CreateFont(size: 20); // 设置字体大小

// 创建一个新的空白图像 var image = new Image<Rgba32>(100, 100);

// 设置背景色为白色 image.Mutate(x => x.Fill(Color.White));

// 使用ImageSharp的Drawing库来绘制文本 image.Mutate(ctx => ctx .DrawText( "7788", // 要绘制的文本 font, // 使用的字体 Color.Black, // 文本颜色 new Vector2(10, 10)) // 文本开始绘制的位置 );

// 保存图像 image.SaveAsPng("image_with_text.png", new PngEncoder());

03

项目地址

https://github.com/SixLabors/ImageSharp

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OeZK7cM_2wqU8YzL311y9DsA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券