net编程怎么加水印

时间:2025-03-01 01:51:08 明星趣事

在.NET编程中,可以使用System.Drawing命名空间下的类来为图片添加水印。以下是添加文字水印和图片水印的方法:

添加文字水印

使用System.Drawing.Graphics对象

通过`Graphics.FromImage(image)`方法获取Graphics对象。

设置字体、颜色、透明度等属性。

使用`Graphics.DrawString()`方法绘制水印文字。

示例代码:

```csharp

using System;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

public class WaterMark

{

private bool _textMark = false;

private bool _imgMark = false;

public string ImagePath { get { return _imgPath; } set { _imgPath = value; }

public void AddTextWatermark(string text, string fontName, int fontSize, byte opacity)

{

using (var img = Image.FromFile(ImagePath))

{

using (var graphic = Graphics.FromImage(img))

{

var font = new Font(fontName, fontSize, FontStyle.Bold, GraphicsUnit.Pixel);

var color = Color.FromArgb(opacity, 255, 255, 255);

var brush = new SolidBrush(color);

var point = new PointF(img.Width - fontSize - 10, img.Height - fontSize - 10);

graphic.DrawString(text, font, brush, point);

}

img.Save("Watermarked_" + Path.GetFileName(ImagePath));

}

}

}

```

添加图片水印

使用System.Drawing.Graphics对象

通过`Graphics.FromImage(image)`方法获取Graphics对象。

创建一个新的位图对象,将原图绘制到该位图中。

将水印图片绘制到新的位图上,并调整位置和透明度。

将新的位图保存为带有水印的图片。

示例代码:

```csharp

using System;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

public class WaterMark

{

private bool _textMark = false;

private bool _imgMark = false;

public string ImagePath { get { return _imgPath; } set { _imgPath = value; }

public void AddImageWatermark(string watermarkPath, float opacity)

{

using (var img = Image.FromFile(ImagePath))

{

using (var watermark = Image.FromFile(watermarkPath))

{

using (var newImg = new Bitmap(img.Width, img.Height))

{

using (var graphic = Graphics.FromImage(newImg))

{

graphic.DrawImage(img, 0, 0);

graphic.DrawImage(watermark, img.Width - watermark.Width - 10, img.Height - watermark.Height - 10, watermark.Width, watermark.Height, GraphicsUnit.Pixel, Color.FromArgb(opacity, 255, 255, 255));

}

newImg.Save("Watermarked_" + Path.GetFileName(ImagePath));

}

}

}

}

}

```

注意事项

确保在添加水印前,图片路径和水印路径是正确的。

可以根据需要调整水印的位置、大小、颜色和透明度。

对于GIF图片,需要先将其转换为位图,然后再进行上述操作。

通过以上方法,你可以在.NET编程中轻松地为图片添加文字水印和图片水印。