public static void AddWaterText(string oldpath,string savepath,string watertext,WaterPositionMode position,string color,int alpha)
{
Image image = Image.FromFile(oldpath);
Bitmap bitmap=new Bitmap(image.Width,image.Height);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.White);
graphics.DrawImage(image,new Rectangle(0,0,image.Width,image.Height),0,0,image.Width,image.Height,GraphicsUnit.Pixel);
Font font=new Font("arial",18);
SizeF ziSizeF=new SizeF();
ziSizeF = graphics.MeasureString(watertext, font);
float x = 0f;
float y = 0f;
switch (position)
{
case WaterPositionMode.LeftTop:
x = ziSizeF.Width/2f;
y = 8f;
break;
case WaterPositionMode.LeftBottom:
x = ziSizeF.Width/2f;
y = image.Height - ziSizeF.Height;
break;
case WaterPositionMode.RightTop:
x = image.Width*1f - ziSizeF.Width/2f;
y = 8f;
break;
case WaterPositionMode.RightBottom:
x = image.Width - ziSizeF.Width;
y = image.Height - ziSizeF.Height;
break;
case WaterPositionMode.Center:
x = image.Width/2;
y = image.Height/2 - ziSizeF.Height/2;
break;
}
try
{
StringFormat stringFormat = new StringFormat {Alignment = StringAlignment.Center};
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(alpha, 0, 0, 0));
graphics.DrawString(watertext, font, solidBrush, x + 1f, y + 1f, stringFormat);
SolidBrush brush = new SolidBrush(Color.FromArgb(alpha, ColorTranslator.FromHtml(color)));
graphics.DrawString(watertext, font, brush, x, y, stringFormat);
solidBrush.Dispose();
brush.Dispose();
bitmap.Save(savepath, ImageFormat.Jpeg);
}
catch (Exception e)
{
}
finally
{
bitmap.Dispose();
image.Dispose();
}
}
public enum WaterPositionMode
{
LeftTop,
LeftBottom,
RightTop,
RightBottom,
Center
}