• C#一些常用的图片操作方法:生成文字图片 合并图片等


    生成文字图片:

     1         /// <summary>
     2         /// 生成文字图片
     3         /// </summary>
     4         /// <param name="text"></param>
     5         /// <param name="isBold"></param>
     6         /// <param name="fontSize"></param>
     7         public Image CreateImage(string text, bool isBold, int fontSize)
     8         {
     9             int wid = 400;
    10             int high = 200;
    11             Font font;
    12             if (isBold)
    13             {
    14                 font = new Font("Arial", fontSize, FontStyle.Bold);
    15 
    16             }
    17             else
    18             {
    19                 font = new Font("Arial", fontSize, FontStyle.Regular);
    20 
    21             }
    22             //绘笔颜色
    23             SolidBrush brush = new SolidBrush(Color.Black);
    24             StringFormat format = new StringFormat(StringFormatFlags.NoClip);
    25             Bitmap image = new Bitmap(wid, high);
    26             Graphics g = Graphics.FromImage(image);
    27             SizeF sizef = g.MeasureString(text, font, PointF.Empty, format);//得到文本的宽高
    28             int width = (int)(sizef.Width + 1);
    29             int height = (int)(sizef.Height + 1);
    30             image.Dispose();
    31             image = new Bitmap(width, height);
    32             g = Graphics.FromImage(image);
    33             g.Clear(Color.White);//透明
    34 
    35             RectangleF rect = new RectangleF(0, 0, width, height);
    36             //绘制图片
    37             g.DrawString(text, font, brush, rect);
    38             //释放对象
    39             g.Dispose();
    40             return image;
    41         }

    合并图片:

     1         /// <summary>  
     2         /// 合并图片  
     3         /// </summary>  
     4         /// <param name="imgBack"></param>  
     5         /// <param name="img"></param>  
     6         /// <returns></returns>  
     7         public static Bitmap CombinImage(Image imgBack, Image img, int xDeviation = 0, int yDeviation = 0)
     8         {
     9 
    10             Bitmap bmp = new Bitmap(imgBack.Width, imgBack.Height + img.Height);
    11 
    12             Graphics g = Graphics.FromImage(bmp);
    13             g.Clear(Color.White);
    14             g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height); //g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);     
    15 
    16             //g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框    
    17 
    18             //g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);    
    19 
    20             g.DrawImage(img, imgBack.Width / 2 - img.Width / 2 + xDeviation, imgBack.Height + yDeviation, img.Width, img.Height);
    21             GC.Collect();
    22             return bmp;
    23         }    
     1         /// <summary>  
     2         /// Resize图片  
     3         /// </summary>  
     4         /// <param name="bmp">原始Bitmap</param>  
     5         /// <param name="newW">新的宽度</param>  
     6         /// <param name="newH">新的高度</param>  
     7         /// <param name="mode">保留着,暂时未用</param>  
     8         /// <returns>处理以后的图片</returns>  
     9         public static Image ResizeImage(Image bmp, int newW, int newH, int mode)
    10         {
    11             try
    12             {
    13                 Image b = new Bitmap(newW, newH);
    14                 Graphics g = Graphics.FromImage(b);
    15 
    16                 // 插值算法的质量    
    17                 g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    18                 g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height),
    19                             GraphicsUnit.Pixel);
    20                 g.Dispose();
    21                 return b;
    22             }
    23             catch
    24             {
    25                 return null;
    26             }
    27         }    

    MemoryStream保存到图片

    1         Bitmap bmp = CombinImage(ms, img1);
    2         MemoryStream ms = new MemoryStream();
    3         bmp.Save(ms, ImageFormat.Png);        
  • 相关阅读:
    shell入门-cut命令
    shell入门-特殊符号
    shell入门-系统和用户的配置文件
    shell入门-变量
    shell入门-shell特性
    linux命令-yum工具详解
    linux命令-rpm查询包
    linux命令-rpm安装和卸载
    math 数学模块
    random 随机模块
  • 原文地址:https://www.cnblogs.com/stulzq/p/6137715.html
Copyright © 2020-2023  润新知