/// <summary>
/// 添加图片水印
/// </summary>
/// <param name="path">原图片绝对地址</param>
/// <param name="Ext">文件后缀</param>
public static string addWaterMark(string path,string fileExt)
{
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
Bitmap b = new Bitmap(image.Width, image.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(b);
g.Clear(Color.White);
g.DrawImage(image, 0, 0, image.Width, image.Height);
Image watermark = new Bitmap(ConfigurationSettings.AppSettings["PersonalPath"] + @"images/logo.jpg");
System.Drawing.Imaging.ImageAttributes imageAttributes = new System.Drawing.Imaging.ImageAttributes();
System.Drawing.Imaging.ColorMap colorMap = new System.Drawing.Imaging.ColorMap();
colorMap.OldColor = Color.FromArgb(255, 0, 255, 0);
colorMap.NewColor = Color.FromArgb(0, 0, 0, 0);
System.Drawing.Imaging.ColorMap[] remapTable = {colorMap};
imageAttributes.SetRemapTable(remapTable, System.Drawing.Imaging.ColorAdjustType.Bitmap);
float[][] colorMatrixElements = {
new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f},
new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f},
new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f},
new float[] {0.0f, 0.0f, 0.0f, 0.3f, 0.0f},
new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f}
};
System.Drawing.Imaging.ColorMatrix colorMatrix = new System.Drawing.Imaging.ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(colorMatrix, System.Drawing.Imaging.ColorMatrixFlag.Default, System.Drawing.Imaging.ColorAdjustType.Bitmap);
int xpos = 0;
int ypos = 0;
xpos = ((image.Width - watermark.Width) - 10);
ypos = image.Height - watermark.Height - 10;
g.DrawImage(watermark, new Rectangle(xpos, ypos, watermark.Width, watermark.Height), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel, imageAttributes);
watermark.Dispose();
imageAttributes.Dispose();
//保存加水印过后的图片,删除原始图片
Random ro=new Random((int)DateTime.Now.Ticks);
string temppath = System.DateTime.Now.ToString("yyyy") + "//" + System.DateTime.Now.ToString("MMdd");
string fileName = temppath + "//" + DateTime.Now.ToString("yyyyMMddHHmmss") + ro.Next(10000) + fileExt;
string filepath = Functions.GetUserFactPath(User.GetUserFromSession().Adddate,User.GetUserFromSession().UserId) + "3//";
b.Save(filepath + fileName);
b.Dispose();
image.Dispose();
if(File.Exists(path))
{
File.Delete(path);
}
return fileName;
}