public void ImageWaterMarkText(string filename, ImageFormat format) { Image originalImage = Image.FromFile(filename); Graphics g = Graphics.FromImage(originalImage); Font drawFont = new Font("Arial", 12, FontStyle.Regular, GraphicsUnit.Pixel); //找到图片旋转中点 float xpos = originalImage.Width > originalImage.Height ? originalImage.Width - originalImage.Height/ 2 : originalImage.Width / 2; float ypos = originalImage.Width > originalImage.Height ? originalImage.Height / 2 : originalImage.Height - originalImage.Width / 2; var triggleLeg = (originalImage.Width > originalImage.Height ? originalImage.Height : originalImage.Width) / 3; ar gPath = new GraphicsPath(); gPath.AddLine(originalImage.Width - triggleLeg, originalImage.Height, originalImage.Width, originalImage.Height - triggleLeg); gPath.AddLine(originalImage.Width, originalImage.Height - triggleLeg, originalImage.Width, originalImage.Height); gPath.AddLine(originalImage.Width, originalImage.Height, originalImage.Width - triggleLeg, originalImage.Height); g.FillPath(new SolidBrush(Color.FromArgb(120, Color.Black)), gPath); g.TranslateTransform(xpos, ypos); g.RotateTransform(-45); SizeF crSize; string watermarkText; watermarkText = "测试文字"; crSize = g.MeasureString("Chine LianTong", drawFont); g.DrawString(watermarkText, drawFont, new SolidBrush(Color.Red), -crSize.Width / 2, 250); watermarkText = DateTime.Now.ToString("Current: yyyy-MM-dd HH:mm"); g.DrawString(watermarkText, drawFont, new SolidBrush(Color.Red), -crSize.Width / 2, 250 + crSize.Height + 5); g.Dispose(); MemoryStream stream = new MemoryStream(); originalImage.Save(stream, format); originalImage.Dispose(); Image img = Image.FromStream(stream); img.Save(filename); img.Dispose(); }
时间: 2024-10-12 08:03:58