C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成
标题C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成
最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地址是:https://www.cnblogs.com/stulzq/p/6137715.html,下面上修改后的代码,有两个资源图片,是自己做的,第一个是背景图片(500600),第二个是前景图片(200200)。
public ActionResult Index(){//生成邀请码图片 字符间距 带空格比较简单//Image img = CreateImage("1 2 3 4 5 6", true, 12);//修改照片分辨率大小//img = ResizeImage(img, 200, 100);//保存邀请码图片//img.Save("D:/3.jpg");//开始合并图片Image ibpic = Image.FromFile("D:/1.jpg");Image inpic = Image.FromFile("D:/2.jpg");Bitmap bmp = CombinImage(ibpic, inpic, 0, -100);bmp.Save("D:/4.jpg", ImageFormat.Jpeg);return View();}
/// <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);format.Alignment = StringAlignment.Center;format.LineAlignment = StringAlignment.Center;Bitmap image = new Bitmap(wid, high);Graphics g = Graphics.FromImage(image);g.Clear(Color.White);//透明RectangleF rect = new RectangleF(0, 0, wid, high);//绘制图片g.DrawString(text, font, brush, rect, format);//释放对象g.Dispose();return image;}/// <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);Graphics g = Graphics.FromImage(bmp);g.Clear(Color.White);g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height);//白色边框g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 + xDeviation - 1, imgBack.Height / 2 - img.Height / 2 + yDeviation - 1, img.Width + 2, img.Height + 2);//填充图片g.DrawImage(img, imgBack.Width / 2 - img.Width / 2 + xDeviation, imgBack.Height / 2 - img.Height / 2 + yDeviation, img.Width, img.Height);GC.Collect();return bmp;}/// <summary> /// Resize图片 /// </summary> /// <param name="bmp">原始Bitmap</param> /// <param name="newW">新的宽度</param> /// <param name="newH">新的高度</param> /// <returns>处理以后的图片</returns> public static Image ResizeImage(Image bmp, int newW, int newH){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;}}
原文:
https://www.cnblogs.com/wangbg/p/8376293.html
C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成相关推荐
- 电子签名生成的图片为空白,以及生成透明底签名图片转为白色底
电子签名如何解决生成的图片为空白的问题,以及生成透明底签名图片转为白色底 一.生成的图片为空白 项目有个新需求需要加电子签名,在实现的过程中遇到了许多问题,现用的插件笔画延迟非常严重,好不容易做完之后 ...
- php 图片处理,根据rgb生成纯色的图片
$image = imagecreatetruecolor(200, 200);//图片大小$white = imagecolorallocate($image, $rAverage, $gAvera ...
- C#利用Graphics类绘制进阶--根据文字内容自动生成指定旋转角度图片
public System.Drawing.Image BuildBitmap(string content, System.Drawing.Font font, float py)//根据文字自动生 ...
- webp的生成转换方法之图片转webp,包括生成webp动态图片
谷歌webp插件包下载地址,谷歌的需要翻墙,我翻墙给小伙伴们下载好了,这里只准备了3大系统的64位的,32位的取官网下载. 64:https://pan.baidu.com/s/1g_0jBUm6MY ...
- Android把文字写到图片上生成图片+文字的新图片
我们项目最近需要微信分享员工二维码功能,二维码图片直接使用zxing就可以生成,但是生成之后只有一个图片,而我们需求的要求是这样的: 没错就是二维码下边有一行提示文字,你可能会想直接imageview ...
- Java | 将文字生成在空白图片居中位置(根据图片大小,自动调节文字大小)
Java | 将文字生成在空白图片居中位置(根据图片大小,自动调节文字大小) 话不多说,直接上代码.(大家可以自己根据需要设置图片大小,不过图片过小时,字体会变模糊,尽量设置图片大一点,600~100 ...
- java gif合成_java图片处理——多张图片合成一张Gif图片并播放或Gif拆分成多张图片...
1.多张jpg图合成gif动画 /*** 把多张jpg图片合成一张 *@parampic String[] 多个jpg文件名 包含路径 *@paramnewPic String 生成的gif文件名 包 ...
- html 图片透明字不透明,CSS实现背景图片透明,文字不透明效果的两种方法
项目中经常会用到背景图上放一些文字介绍,这里介绍两种技术来实现背景图片透明,文字不透明效果,记录一下,方便日后学习. 1.毛玻璃效果:背景图 + 伪类 + flite:blur(3px) .demo1 ...
- CSS实现背景图毛玻璃效果和如何保持图片上的文字显示正常
说明 因为我的底子特别的差(大佬勿喷),今天想让文字在图片上方显示,并且给图片模糊,结果当图片模糊之后也就是实现毛玻璃效果后,发现图片上的文字也模糊掉了,这个问题当然可以用伪元素的方式解决,但是由于某 ...
最新文章
- 消息系统kafka原理解析
- LuaBridge 中C++类和继承示例
- 监控mysql锁定状态_MySQL 锁的监控及处理
- 四、COSMIC功能点实操
- spring python负载均衡_Spring Cloud:使用Ribbon实现负载均衡详解(上)
- hive 中文字符过滤_0650-6.2.0-通过UDF实现HiveImpala的中文拼音排序
- IDEA 控制台显示Run Dashboard
- Javascript飘窗代码
- 互联网之子——亚伦·斯沃茨:新时代网络自由的先驱
- linux-uos输入法丢失解决办法
- 拓嘉启远:拼多多前期没有流量如何补充
- C#、winfrom设置金额数字大小写转换
- 上进的凡凡,幸运数组,字符串魔法(easy)
- 【山大会议】私人聊天频道 WebRTC 工具类
- 基于PHP+小程序(MINA框架)+Mysql数据库的干洗店洗衣小程序系统设计与实现
- 浙江中控应邀参加2022中国工业软件发展大会
- python语言程序培训
- 云免流usb共享电脑_手机共享电脑网络,无需流量与WiFi即可高速上网,这次是真的黑科技!...
- 2020 年前端最火的技术到底是什么?
- 前端开发:使用JS正则表达式校验邮箱和手机号的方法