ImageSharp:.NET平台上的灵活高性能图像处理库
ImageSharp 是一个强大的图像处理库,专为.NET平台设计。无论是简单的图像加载和保存,还是复杂的图像处理、滤镜应用和文本添加,ImageSharp 提供了丰富而灵活的功能,使图像处理变得简单而愉快。
使用 ImageSharp 加载和保存图像非常简单,以下是一个基本示例:
using SixLabors.ImageSharp;
class Program
{
static void Main()
{
// 加载图像
using (var image = Image.Load("input.jpg"))
{
// 这里可以添加各种图像处理操作
// 保存图像
image.Save("output.jpg");
}
}
}
在这个例子中,我们使用 Image.Load 方法加载图像,然后进行各种图像处理操作,最后使用 Save 方法保存图像。
下面是一个演示如何调整图像大小、裁剪和应用滤镜的实例:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
class Program
{
static void Main()
{
// 加载图像
using (var image = Image.Load("input.jpg"))
{
// 调整大小
image.Mutate(x => x
.Resize(new ResizeOptions
{
Size = new Size(300, 300),
Mode = ResizeMode.Max
}));
// 裁剪
image.Mutate(x => x
.Crop(new Rectangle(50, 50, 200, 200)));
// 应用滤镜 - 灰度和反转颜色
image.Mutate(x => x
.Grayscale() // 转为灰度
.InvertColors()); // 反转颜色
// 保存处理后的图像
image.Save("output_processed.jpg");
}
}
}
在这个示例中,我们使用 Mutate 方法对图像进行了大小调整、裁剪、灰度化和颜色反转等处理。
下面是一个示例,演示如何生成缩略图:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
class Program
{
static void Main()
{
// 加载图像
using (var image = Image.Load("input.jpg"))
{
// 生成缩略图
var thumbnail = image.Clone(x => x
.Resize(new ResizeOptions
{
Size = new Size(100, 100),
Mode = ResizeMode.Crop
}));
// 保存生成的缩略图
thumbnail.Save("thumbnail.jpg");
}
}
}
在这个示例中,我们使用 Clone 方法生成了原图的一个克隆,并在克隆上进行了缩略图的生成。
下面是一个演示如何在图像上添加文本的实例:
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Fonts;
using System.Numerics;
class Program
{
static void Main()
{
// 加载图像
using (var image = Image.Load("input.jpg"))
{
// 在图像上添加文本
var font = SystemFonts.CreateFont("Arial", 16);
var textOptions = new TextGraphicsOptions
{
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center
};
image.Mutate(x => x
.DrawText(textOptions, "Hello, ImageSharp!", font, Rgba32.White, new PointF(image.Width / 2, image.Height / 2)));
// 保存带有文本的图像
image.Save("output_with_text.jpg");
}
}
}
在这个示例中,我们使用 DrawText 方法在图像上添加了居中的文本。你可以根据需要调整文本的字体、大小、颜色等参数。
这些示例展示了 ImageSharp 的一些基础功能和高级功能。你可以根据实际需求,结合文档和其他资源,进一步深入使用 ImageSharp。