在.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编程中轻松地为图片添加文字水印和图片水印。