服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - c# 生成文字图片和合并图片的示例

c# 生成文字图片和合并图片的示例

2022-10-20 12:08李志强 C#

这篇文章主要介绍了c# 生成文字图片和合并图片的示例,帮助大家更好的利用c#处理图片,感兴趣的朋友可以了解下

生成文字图片:

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

合并图片:

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

MemoryStream保存到图片

?
1
2
3
Bitmap bmp = CombinImage(ms, img1);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);

以上就是c# 生成文字图片和合并图片的示例的详细内容,更多关于c# 生成文字图片和合并图片的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/stulzq/p/6137715.html

延伸 · 阅读

精彩推荐
  • C#详解三种C#实现数组反转方式

    详解三种C#实现数组反转方式

    本篇文章主要介绍了详解三种C#实现数组反转方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    11111111221f9162021-12-31
  • C#Unity OnGUI实时显示游戏FPS

    Unity OnGUI实时显示游戏FPS

    这篇文章主要为大家详细介绍了Unity OnGUI实时显示游戏FPS,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Czhenya5042022-08-08
  • C#C#开发中常用的加密解密方法汇总

    C#开发中常用的加密解密方法汇总

    这篇文章主要介绍了C#开发中常用的加密解密方法汇总,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    Tulip1237472022-10-17
  • C#C#部署数据库及IIS站点

    C#部署数据库及IIS站点

    这篇文章主要为大家详细介绍了C#部署数据库及IIS站点的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    airforce0948702022-02-21
  • C#C#制作多线程处理强化版网络爬虫

    C#制作多线程处理强化版网络爬虫

    这篇文章主要介绍了C#制作多线程处理强化版网络爬虫的相关代码,有想学习C#多线程编程的小伙伴可以参考下...

    7692021-12-06
  • C#C#多线程编程详解

    C#多线程编程详解

    C#提供了丰富的多线程操作,为编程带来了极大的便利,但如果使用不当也会带来各种各样的麻烦。本篇文章主要介绍了C#多线程,有需要的可以了解一下。...

    阿凡卢5262021-12-10
  • C#C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题实例

    C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题实

    这篇文章主要介绍了C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题,简单说明了责任链模式的概念,并结合《西游记》中真假美猴王故事背景为...

    GhostRider11482022-01-21
  • C#C#实现Excel动态生成PivotTable

    C#实现Excel动态生成PivotTable

    这篇文章主要为大家详细介绍了C#实现Excel动态生成PivotTable的相关方法,感兴趣的小伙伴们可以参考一下...

    JackWang-CUMT10082021-11-18