C#如何给图片添加水印效果
时间: 2023-07-12 15:43:22 浏览: 169
C#实现给图片加水印的方法
可以使用C#中的GDI+库来给图片添加水印效果。以下是一个简单的示例代码:
```csharp
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public static Image AddWatermark(Image image, string watermarkText, Font font, Color color, float opacity, PointF position)
{
// 创建一个与原图相同大小的Bitmap对象
Bitmap bitmap = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb);
// 创建一个Graphics对象,用于绘制水印
using (Graphics graphics = Graphics.FromImage(bitmap))
{
// 将Graphics对象的渲染质量设置为高质量
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
// 绘制原图
graphics.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
// 创建一个Brush对象,用于绘制水印文字
Brush brush = new SolidBrush(Color.FromArgb((int)(opacity * 255), color));
// 绘制水印文字
graphics.DrawString(watermarkText, font, brush, position);
// 释放Brush对象
brush.Dispose();
}
// 返回添加水印后的图片
return bitmap;
}
```
以上代码中,`AddWatermark`方法接受以下参数:
- `image`:要添加水印的图片。
- `watermarkText`:要添加的水印文字。
- `font`:水印文字的字体。
- `color`:水印文字的颜色。
- `opacity`:水印文字的不透明度,取值范围为0-1。
- `position`:水印文字的位置。
使用示例:
```csharp
Image image = Image.FromFile("sample.jpg");
Font font = new Font("Arial", 24);
Color color = Color.White;
float opacity = 0.5f;
PointF position = new PointF(10, 10);
Image newImage = AddWatermark(image, "Sample Watermark", font, color, opacity, position);
newImage.Save("sample-with-watermark.jpg", ImageFormat.Jpeg);
```
以上示例中,我们从文件中加载了一张名为`sample.jpg`的图片,然后使用`AddWatermark`方法添加了一个水印,最后将添加水印后的图片保存为`sample-with-watermark.jpg`。
阅读全文