zoukankan      html  css  js  c++  java
  • 生成图片水印

    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
        }
  • 相关阅读:
    四则运算结对作业
    读《构建之法》第四、十七章有感
    四则运算练习的命令行软件
    Spring01
    oop01
    运行shell脚本的三种方式
    正则表达式的基础组成部分
    C语言文件函数
    shell文件描述符及重定向
    shell基础
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/6925125.html
Copyright © 2011-2022 走看看