zoukankan      html  css  js  c++  java
  • 给图片添加文字水印

    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(); }
  • 相关阅读:
    堆排序算法的原理和实现
    图的深度优先搜索(DFS)和广度优先搜索(BFS)算法
    图的迪杰斯特拉算法求最短路径
    第13章 切换到混合流并添加API访问
    第12章 添加对外部认证的支持
    第11章 使用OpenID Connect添加用户身份验证
    第10章 使用密码保护API
    第9章 使用客户端凭据保护API
    第8章 概述
    第7章 贡献
  • 原文地址:https://www.cnblogs.com/sgciviolence/p/6432970.html
Copyright © 2011-2022 走看看