.NET6使用ImageSharp实现给图片添加水印

  • Post category:C#

以下是关于“.NET6使用ImageSharp实现给图片添加水印”的完整攻略:

1. 什么是ImageSharp?

ImageSharp是一个.NET的图像处理库,它提供了一种简单的方式来处理图像。ImageSharp支持各种图格式,例如JPEG、PNG、BMP、GIF等,并提供了一些有用的功能,例如调整大小、裁剪、旋转、添加水等。

2. 安装ImageSharp

要使用ImageSharp,我们需要先安装它。可以使用以下命令在.NET Core项目中安装ImageSharp:

dotnet add package SixLabors.ImageSharp

3. 使用ImageSharp添加水印

要使用ImageSharp添加水印,我们需要按照以下步骤操作:

3.1. 加载图像

首先,我们需要加载要添加水印的图像。可以按照以下示例加载图:

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

using var image = Image.Load("image.jpg");

在上面的代码中,我们使用Image.Load方法加载名为image.jpg的图像。

3.2. 添加水印

接下来,我们需要添加水印。可以按照以下示例添加水印:

using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;

using var image = Image.Load("image.jpg");
var font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);
var text = "Watermark";

image.Mutate(x => x.DrawText(text, font, Color.White, new PointF(10, 10)));

在上面的代码中,我们使用Font类定义了一个字体,使用DrawText方法在图像上绘制了一个文本水印。

3.3. 保存图像

最后,我们需要保存带有水印的图像。可以按照以下示例保存图像:

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

using var image = Image.Load("image.jpg");
var font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);
var text = "Watermark";

image.Mutate(x => x.DrawText(text, font, Color.White, new PointF(10, 10)));
image.Save("image_with_watermark.jpg");

在上面的代码中,我们使用Save方法将带有水印的图像保存为image_with_watermark.jpg

4. 示例说明

以下是两个例子,演示如何使用ImageSharp添加水印。

4.1. 示例 1

在这个示例中,我们将使用ImageSharp添加一个简单的文本水印。

using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;

using var image = Image.Load("image.jpg");
var font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);
var text = "Watermark";

image.Mutate(x => x.DrawText(text, font, Color.White, new PointF(10, 10)));
image.Save("image_with_watermark.jpg");

在上面的代码中,我们使用Font类定义了一个字体,使用DrawText方法在图像上绘制了一个文本水印,并使用Save方法将带有水印的图像保存为image_with_watermark.jpg

4.2. 示例 2

在这个示例中,我们将使用ImageSharp添加一个带有透明度的图像水印。

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

using var image = Image.Load("image.jpg");
using var watermark = Image.Load("watermark.png");

watermark.Mutate(x => x.Resize(new Size(100, 100)));
watermark.Mutate(x => x.BackgroundColor(Color.Black));
watermark.Mutate(x => x.Opacity(0.5f));

image.Mutate(x => x.DrawImage(watermark, new Point(10, 10), 1f));
image.Save("image_with_watermark.jpg");

在上面的代码中,我们使用Image.Load方法加载名为watermark.png的图像,并使用Resize方法调整大小。然后,我们使用BackgroundColor方法设置背景颜色,并使用Opacity方法设置透明度。最后,我们使用DrawImage方法在图像上绘制了一个图像水印,并使用Save方法将带有水印的图像保存为image_with_watermark.jpg

5. 结论

通过以上步骤,我们可以使用ImageSharp轻松地添加水印。我们可以加载要添加水印的图像,使用DrawText方法添加文本水印,使用DrawImage方法添加图像水印,并使用Save方法保存带有水印的图像。ImageSharp支持各种图像格式,例如JPEG、PNG、BMP、GIF等,并提供了一些有用的功能,例如调整大小、裁剪、旋转、添加水印等。