• 在图片上加水印效果的字符


    客户要求在打印的时候背景上要有水印效果的文字,用来显示打印内容的发布时间等,程序如下:
    代码
        private string CreateWaterImg(string text)
        {
            
    string fileName = DateTime.Now.ToString("yyyyMMddhhmmss"+ ".jpg";
            
    // 已经存在的一个图片
            string exsitImg = Server.MapPath("."+ "/Empty.jpg";
            
    #region 文件夹(因为打印后无法及时删除,所以采用单双日文件夹删除前一天的方法)
            
    string path = Server.MapPath("."+ "/WaterImg";
            
    string path1 = Server.MapPath("."+ "/WaterImg";
            
    if ((DateTime.Now.DayOfYear % 2== 0)
            {
                path 
    += "D";
                path1 
    += "S";
            }
            
    else
            {
                path 
    += "S";
                path1 
    += "D";
            }
            DirectoryInfo curImgDir 
    = new DirectoryInfo(path);
            DirectoryInfo lastImgDir 
    = new DirectoryInfo(path1);

            
    if (!curImgDir.Exists)
            {
                curImgDir.Create();
            }
            
    if (lastImgDir.Exists)
            {
                lastImgDir.Delete(
    true);
            }
            
    #endregion
            
    //加文字水印
            System.Drawing.Image image = System.Drawing.Image.FromFile(exsitImg);

            Graphics g 
    = Graphics.FromImage(image);
            g.DrawImage(image, 
    00, image.Width, image.Height);
            Font f 
    = new Font("Verdana"20, FontStyle.Italic);
            
    // 后两个Color参数结合可以设置字体透明度
            Brush b = new HatchBrush(HatchStyle.Percent30, Color.FromArgb(100, Color.Gray), Color.FromArgb(100, Color.Gray));
            
    // 把当前图片上的内容清空
            g.Clear(Color.White);
            
    // 在图片上添加文字
            for (int i = 10; i < image.Width ; i += 400)
            {
                
    for (int j = 0; j < image.Height - 80; j += 80)
                {
                    // 这儿的处理时为了竖直对齐且为斜线
                    g.TranslateTransform(i, j);
                    g.RotateTransform(
    45);
                    g.DrawString(text, f, b, 
    00);
                    g.RotateTransform(
    -45);
                    g.ResetTransform();
                }
            }

            g.Dispose();
            
    // 保存
            string newPath = path + "/" + fileName;
            image.Save(newPath);
            image.Dispose();
            
    // 返回相对路径
            return newPath.Replace(Server.MapPath("."+ "/""");
        }

    效果如下:

  • 相关阅读:
    Linux基础命令练习题答案7.9
    Linux基础练习题7.9
    Linux基础练习题答案7.8
    Linux基础练习题7.8
    12 drf精华总结
    11 drf(RBAC)基于角色的权限控制
    10 drfJWT认证
    09 drf自动生成接口文档
    08 drf分页器
    Python 3.9正式版,新特性提前一睹为快
  • 原文地址:https://www.cnblogs.com/bmy_light/p/1619217.html
Copyright © 2020-2023  润新知