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
        }
  • 相关阅读:
    正则如何匹配div下的所有<li>标签?
    日历
    生成一定数量的不重复随机数
    PHP微信红包的算法实现探讨
    Flask 快速使用 —— (1)
    Django rest framework(8)---- 视图和渲染器
    Django 组件之 ----- content-type
    Django rest framework(7)----分页
    Django rest framework(6)----序列化(2)
    Django rest framework(5)----解析器
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/6925125.html
Copyright © 2011-2022 走看看