public class ImageWater {
public enum WaterPosition
{
TopRight,
TopMiddle,
TopLeft,
BottomRight,
BottomMiddle,
BottomLeft
}
/// <summary>
/// 添加文字水印
/// </summary>
/// <param name="picPath">图片在服务器上的绝对路径</param>
/// <param name="words">要向图片上添加的水印文字</param>
public static void AddWordWaterToImg(string picPath, string words, WaterPosition wposition)
{
Image image = Image.FromFile(picPath);
Bitmap b = new Bitmap(image.Width, image.Height,
PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.High;
g.DrawImage(image, 0, 0, image.Width, image.Height);
Font f = new Font("宋体", 12);
Brush brush = new SolidBrush(System.Drawing.Color.Green);
SizeF sizef = new SizeF();
sizef = g.MeasureString(words, f);//获取文字的大小
float xpos = 12;
float ypos = 12;
switch (wposition)
{
case WaterPosition.TopLeft:
xpos = 12;
ypos = 12;
break;
case WaterPosition.TopMiddle:
xpos = image.Width / 2 - sizef.Width / 2;
ypos = 12;
break;
case WaterPosition.TopRight:
xpos = image.Width - (sizef.Width+xpos);
ypos = 12;
break;
case WaterPosition.BottomLeft:
xpos = 12;
ypos = image.Height - (sizef.Height+ypos);
break;
case WaterPosition.BottomMiddle:
xpos = image.Width / 2 - sizef.Width / 2;
ypos = image.Height - (sizef.Height + ypos);
break;
case WaterPosition.BottomRight:
xpos = image.Width - (sizef.Width + xpos);
ypos = image.Height - (sizef.Height + ypos);
break;
default:
break;
}
g.DrawString(words, f, brush, xpos, ypos);
image.Dispose();
b.Save(picPath);
b.Dispose();
}
}
public enum WaterPosition
{
TopRight,
TopMiddle,
TopLeft,
BottomRight,
BottomMiddle,
BottomLeft
}
/// <summary>
/// 添加文字水印
/// </summary>
/// <param name="picPath">图片在服务器上的绝对路径</param>
/// <param name="words">要向图片上添加的水印文字</param>
public static void AddWordWaterToImg(string picPath, string words, WaterPosition wposition)
{
Image image = Image.FromFile(picPath);
Bitmap b = new Bitmap(image.Width, image.Height,
PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.High;
g.DrawImage(image, 0, 0, image.Width, image.Height);
Font f = new Font("宋体", 12);
Brush brush = new SolidBrush(System.Drawing.Color.Green);
SizeF sizef = new SizeF();
sizef = g.MeasureString(words, f);//获取文字的大小
float xpos = 12;
float ypos = 12;
switch (wposition)
{
case WaterPosition.TopLeft:
xpos = 12;
ypos = 12;
break;
case WaterPosition.TopMiddle:
xpos = image.Width / 2 - sizef.Width / 2;
ypos = 12;
break;
case WaterPosition.TopRight:
xpos = image.Width - (sizef.Width+xpos);
ypos = 12;
break;
case WaterPosition.BottomLeft:
xpos = 12;
ypos = image.Height - (sizef.Height+ypos);
break;
case WaterPosition.BottomMiddle:
xpos = image.Width / 2 - sizef.Width / 2;
ypos = image.Height - (sizef.Height + ypos);
break;
case WaterPosition.BottomRight:
xpos = image.Width - (sizef.Width + xpos);
ypos = image.Height - (sizef.Height + ypos);
break;
default:
break;
}
g.DrawString(words, f, brush, xpos, ypos);
image.Dispose();
b.Save(picPath);
b.Dispose();
}
}