.Net MVC 图片合成、证书生成
.Net MVC 图片合成、证书生成
文章目录
- .Net MVC 图片合成、证书生成
- 前言
- 一、封装ImgText对象
- 二、ImageUtil帮助类
- 三、测试
- 总结
前言
在开发中有一些场景中我们需要将文档盖章、荣誉证书生成等,此篇记录在.Net Mvc 中合成图片
以下是本篇文章正文内容,下面案例可供参考
一、封装ImgText对象
命名空间:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
ImgText对象:
public class ImgText{/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = Color.Black;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font("宋体", 28, FontStyle.Regular, GraphicsUnit.Point);this.PointF = new PointF(x, y-(28/2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = Color.Black;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font("宋体", fontSize, FontStyle.Regular, GraphicsUnit.Point);this.PointF = new PointF(x, y-(fontSize/2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="fontStyle">字体样式 例如:加粗</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, FontStyle fontStyle, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = Color.Black;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font("宋体", fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y-(fontSize/2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="color">字体颜色</param>/// <param name="fontStyle">字体样式</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, Color color, FontStyle fontStyle, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = color;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font("宋体", fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="color">字体颜色</param>/// <param name="fontStyle">字体样式</param>/// <param name="fontFamily">字体类型 例如:微软雅黑、宋体</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, Color color, FontStyle fontStyle, FontFamily fontFamily, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = color;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="color">字体颜色</param>/// <param name="fontStyle">字体样式</param>/// <param name="fontFamily">字体类型</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, Color color, FontStyle fontStyle, string fontFamily, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = StringAlignment.Near;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = color;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// /// <param name="fontSize">字体大小</param>/// <param name="alignment">对齐方式</param>/// <param name="color">字体颜色</param>/// <param name="fontStyle">字体样式</param>/// <param name="fontFamily">字体类型</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize,StringAlignment alignment, Color color, FontStyle fontStyle, string fontFamily, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = alignment;//默认设置为靠左布局this.StringFormat = sf;//默认画笔颜色为黑色this.Color = color;//默认字体为是宋体 字体大小为28 普通文本this.Font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="alignment">对齐方式</param>/// <param name="color">字体颜色</param>/// <param name="fontFamily">字体</param>/// <param name="fontStyle">字体样式</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, StringAlignment alignment, Color color, FontFamily fontFamily, FontStyle fontStyle, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = alignment;this.StringFormat = sf;this.Color = color;this.Font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 图片文字/// </summary>/// <param name="text">文字</param>/// <param name="fontSize">字体大小</param>/// <param name="alignment">对齐方式</param>/// <param name="color">字体颜色</param>/// <param name="fontStyle">字体样式</param>/// <param name="fontFamily">字体类型</param>/// <param name="x">要插入的x轴位置,根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的x轴位置,Center则以文字中心点为插入点的x轴位置</param>/// <param name="y">要插入的y轴 根据StringAlignment类型不同插入点位置不同,例如Near则以左边为插入点的y轴位置,Center则以文字中心点为插入点的y轴位置</param>public ImgText(string text, float fontSize, StringAlignment alignment, Color color, string fontFamily, FontStyle fontStyle, float x, float y){this.Text = text;StringFormat sf = new StringFormat();sf.Alignment = alignment;this.StringFormat = sf;this.Color = color;this.Font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Point);this.PointF = new PointF(x, y - (fontSize / 2));}/// <summary>/// 要插入的文字/// </summary>public string Text { get; set; }/// <summary>/// 文字布局方式/// </summary>public StringFormat StringFormat { get; set; }/// <summary>/// 字体颜色/// </summary>public Color Color { get; set; }/// <summary>/// 字体样式大小等/// </summary>public Font Font { get; set; }/// <summary>/// 字体要插入的位置/// </summary>public PointF PointF { get; set; }}
二、ImageUtil帮助类
命名空间:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Mvc;
ImageUtil帮助类:
public static class ImageUtil{public static Bitmap AsBitmap(this Image sourceImage){Bitmap bitmap = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bitmap)){g.DrawImage(sourceImage, 0, 0);}return bitmap;}/// <summary>/// 图片合并 例如,图片盖章/// </summary>/// <param name="backgroundImg">底图、背景图</param>/// <param name="topImg">最上层图片、盖章图片</param>/// <param name="xDeviation">x轴位置 图片左上角的点</param>/// <param name="yDeviation">y轴位置 图片左上角的点</param>/// <returns></returns>public static Bitmap SyntheticImage(this Image backgroundImg, Image topImg, float xDeviation = 0, float yDeviation = 0){Bitmap bmp = new Bitmap(backgroundImg.Width, backgroundImg.Height);using (Graphics g = Graphics.FromImage(bmp)){g.Clear(Color.White);g.DrawImage(backgroundImg, 0, 0, backgroundImg.Width, backgroundImg.Height);g.DrawImage(topImg, xDeviation, yDeviation, topImg.Width, topImg.Height);}return bmp;}/// <summary>/// 图片合并 例如,图片盖章/// </summary>/// <param name="backgroundImg">底图、背景图</param>/// <param name="topImg">最上层图片、盖章图片</param>/// <param name="xDeviation">x轴位置 图片左上角的点</param>/// <param name="yDeviation">y轴位置 图片左上角的点</param>/// <returns></returns>public static Bitmap SyntheticImage(this Bitmap backgroundImg, Image topImg, float xDeviation = 0, float yDeviation = 0){Bitmap bmp = new Bitmap(backgroundImg.Width, backgroundImg.Height);using (Graphics g = Graphics.FromImage(bmp)){g.Clear(Color.White);g.DrawImage(backgroundImg, 0, 0, backgroundImg.Width, backgroundImg.Height);g.DrawImage(topImg, xDeviation, yDeviation, topImg.Width, topImg.Height);}return bmp;}/// <summary>/// 图片合并 例如,图片盖章/// </summary>/// <param name="backgroundImg">底图、背景图</param>/// <param name="topImg">最上层图片、盖章图片</param>/// <param name="xDeviation">x轴位置 图片左上角的点</param>/// <param name="yDeviation">y轴位置 图片左上角的点</param>/// <param name="width">插入宽度</param>/// <param name="height">插入高度</param>/// <returns></returns>public static Bitmap SyntheticImage(this Image backgroundImg, Image topImg, float xDeviation = 0, float yDeviation = 0, float width = 0, float height = 0){Bitmap bmp = new Bitmap(backgroundImg.Width, backgroundImg.Height);using (Graphics g = Graphics.FromImage(bmp)){g.Clear(Color.White);g.DrawImage(backgroundImg, 0, 0, backgroundImg.Width, backgroundImg.Height);g.DrawImage(topImg, xDeviation, yDeviation, width != 0 ? width : topImg.Width, height != 0 ? height : topImg.Height);}return bmp;}/// <summary>/// 图片合并 例如,图片盖章/// </summary>/// <param name="backgroundImg">底图、背景图</param>/// <param name="topImg">最上层图片、盖章图片</param>/// <param name="xDeviation">x轴位置 图片左上角的点</param>/// <param name="yDeviation">y轴位置 图片左上角的点</param>/// <param name="width">插入宽度</param>/// <param name="height">插入高度</param>/// <returns></returns>public static Bitmap SyntheticImage(this Bitmap backgroundImg, Image topImg, float xDeviation = 0, float yDeviation = 0, float width = 0, float height = 0){Bitmap bmp = new Bitmap(backgroundImg.Width, backgroundImg.Height);using (Graphics g = Graphics.FromImage(bmp)){g.Clear(Color.White);g.DrawImage(backgroundImg, 0, 0, backgroundImg.Width, backgroundImg.Height);g.DrawImage(topImg, xDeviation, yDeviation, width != 0 ? width : topImg.Width, height != 0 ? height : topImg.Height);}return bmp;}/// <summary>/// 插入文字/// </summary>/// <param name="imgText"></param>/// <param name="sourceImage"></param>/// <returns></returns>public static Bitmap InsertString(ImgText imgText, Bitmap sourceImage){Bitmap bitmap = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bitmap)){g.DrawImage(sourceImage, 0, 0);g.TextRenderingHint = TextRenderingHint.AntiAlias;using (SolidBrush brush = new SolidBrush(imgText.Color)){g.CompositingQuality = CompositingQuality.HighQuality;g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.SmoothingMode = SmoothingMode.HighQuality;g.DrawString(imgText.Text, imgText.Font, brush, imgText.PointF, imgText.StringFormat);}}return bitmap;}/// <summary>/// 插入文字/// </summary>/// <param name="imgText"></param>/// <param name="sourceImage"></param>/// <returns></returns>public static Bitmap InsertString(ImgText imgText, Image sourceImage){Bitmap bitmap = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bitmap)){g.DrawImage(sourceImage, 0, 0);g.TextRenderingHint = TextRenderingHint.AntiAlias;using (SolidBrush brush = new SolidBrush(imgText.Color)){g.CompositingQuality = CompositingQuality.HighQuality;g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.SmoothingMode = SmoothingMode.HighQuality;g.DrawString(imgText.Text, imgText.Font, brush, imgText.PointF, imgText.StringFormat);}}return bitmap;}/// <summary>/// 插入文字/// </summary>/// <param name="sourceImage"></param>/// <param name="imgText"></param>/// <returns></returns>public static Bitmap InsertString(this Image sourceImage, ImgText imgText){Bitmap bitmap = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bitmap)){g.DrawImage(sourceImage, 0, 0);g.TextRenderingHint = TextRenderingHint.AntiAlias;using (SolidBrush brush = new SolidBrush(imgText.Color)){g.CompositingQuality = CompositingQuality.HighQuality;g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.SmoothingMode = SmoothingMode.HighQuality;g.DrawString(imgText.Text, imgText.Font, brush, imgText.PointF, imgText.StringFormat);}}return bitmap;}/// <summary>/// 插入文字/// </summary>/// <param name="sourceImage"></param>/// <param name="imgText"></param>/// <returns></returns>public static Bitmap InsertString(this Bitmap sourceImage, ImgText imgText){Bitmap bitmap = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bitmap)){g.DrawImage(sourceImage, 0, 0);g.TextRenderingHint = TextRenderingHint.AntiAlias;using (SolidBrush brush = new SolidBrush(imgText.Color)){g.CompositingQuality = CompositingQuality.HighQuality;g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.SmoothingMode = SmoothingMode.HighQuality;g.DrawString(imgText.Text, imgText.Font, brush, imgText.PointF, imgText.StringFormat);}}return bitmap;}/// <summary>/// 将位图转换为Base64字符串 在前端可用 <img src="https://img-blog.csdnimg.cn/2022010709133388334.jpeg"" />/// </summary>/// <param name="bitmap"></param>/// <returns></returns>public static string ToBase64String(this Bitmap bitmap){using (MemoryStream ms = new MemoryStream()){bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);byte[] arr = new byte[ms.Length];ms.Position = 0;ms.Read(arr, 0, (int)ms.Length);ms.Close();return Convert.ToBase64String(arr);}}/// <summary>/// 将位图转换为FileStreamResult 在前端可用 <img src="请求的路由地址" />/// </summary>/// <param name=""></param>/// <returns></returns>public static ActionResult ToFile(this Bitmap bitmap,string fileName){using (MemoryStream ms = new MemoryStream()){bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);byte[] arr = new byte[ms.Length];ms.Position = 0;ms.Read(arr, 0, (int)ms.Length);ms.Close();return new FileStreamResult(new MemoryStream(arr), "image/jpeg") { FileDownloadName = JoinExt(fileName, ".jpg") };}}/// <summary>/// 如果文件名中没有后缀名,增加文件后缀名/// </summary>/// <param name="fileName"></param>/// <param name="ext">文件后缀名 例如 .jpg .zip .pdf</param>/// <returns></returns>private static string JoinExt(string fileName,string ext){if (!fileName.EndsWith(ext)){fileName += ext;}return HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8"));}}
三、测试
控制器中编写:
/// <summary>/// 测试图片合成/// </summary>/// <returns></returns>[HttpGet]public ActionResult GetSyntheticImg(string id){string _filerootdir = _webhostEnvironment.WebRootPath;//可以通过id去查询相关数据,这里只做测试数据//模板图片var imgPath = _filerootdir+ "/img/test_bj.jpg";return Image.FromFile(imgPath).AsBitmap().InsertString(new ImgText("Hello Word", 20,StringAlignment.Center, Color.Black, FontStyle.Regular, "微软雅黑", 300,210 )).ToFile("测试图片");}
前台编写:
<img src="@Url.Action("GetSyntheticImg")" />
Base64String方式(可在控制器post方法使用):
Bitmap bitmap = Image.FromFile(Path.Combine(HttpContext.Current.Server.MapPath("~/administrator/images/certificate/2.jpg")))
.SyntheticImage(Image.FromFile(Path.Combine(HttpContext.Current.Server.MapPath("~/administrator/images/certificate/yz.png"))), 1360, 1100, 280, 280)
.InsertString(new ImgText("XXXXXXXXXXXXX分公司", 23, Color.Black, FontStyle.Regular, "微软雅黑", 340, 1045))
.InsertString(new ImgText("张三", 23, Color.Black, FontStyle.Regular, "微软雅黑", 1490, 1045))
.InsertString(new ImgText("XXXXXXXXX大厦", 23, Color.Black, FontStyle.Regular, "微软雅黑", 340, 1100 ))
.InsertString(new ImgText("XXX-D342", 23, Color.Black, FontStyle.Regular, "微软雅黑", 1490, 1100))
.InsertString(new ImgText(DateTime.Now.ToString("yyyy-MM-dd"), 23, Color.Black, FontStyle.Regular, "微软雅黑", 340, 1155))
.InsertString(new ImgText("XXXXXX机构", 23, Color.Black, FontStyle.Regular, "微软雅黑", 1490, 1155 ))
.InsertString(new ImgText("XXXXXX荣誉",55, StringAlignment.Center, Color.Black, FontStyle.Regular, "微软雅黑", 980, 690 ));String imgtest64str = bitmap?.ToBase64String();
前端使用:
<img src="data:image/jpeg;base64,这里填充Base64String字符串" />
总结
以上就是在.Net Mvc 下图片合成的简单使用。
.Net MVC 图片合成、证书生成相关推荐
- Android 图片合成海报生成二维码,指定文字。
一 ,图片合成,海报增加二维码,文字,或者用户ID.先看图 这个是没有合成之前的图. 合成之后的图. . 使用到的技术点 1,图片Glide 2, banner2.0 3, zxing class M ...
- .Net Core 图片合成、证书生成
.Net Core 图片合成.证书生成 文章目录 .Net Core 图片合成.证书生成 前言 一.封装ImgText对象 二.ImageUtil帮助类 三.测试 总结 前言 在开发中有一些场景中我们 ...
- 手机上怎么在线生成gif?1分钟教你手机图片合成gif
怎样通过手机实现在线制作GIF图片的操作呢?接下来,给大家分享两招gif制作(https://www.gif.cn/)小窍门-[GIF中文网]不需要下载任何软件,小白也能轻松上手.支持原画质导出,图片 ...
- C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成
标题C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成 最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地 ...
- php生成二维码并与背景图片合成
1. 下载 phpqrcode PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:http://phpqrcode.source ...
- 前端生成二维码与图片合成
首先前端生成二维码 使用插件完成,插件为DrawQRCode.unitypackage 合成二维码直接使用DrawQRCode 类里提供的方法即可 生成二维码的方法 DrawCode_Color32 ...
- nodejs 实现二维码生成及图片合成
游戏前端需要做分享功能.生成二维码后 在指定的图片上添加二维码和邀请码 生成新的图片 如图所示 1.使用 qr-code生成二维码 /*** 根据url 地址生成 二维码*/async createQ ...
- 图片合成gif怎么做?图片转gif,图片生成gif在线制作
怎么制作一张有趣的gif动图,很多时候我们常见的就是gif动图用来发表情包,殊不知gif动图可以用的还是挺多的,比如制作好看的风景gif动画,产品的宣传动图,用来做宣传素材或者是文章配图都是很好的 ...
- JAVA实现基于ZXing的二维码自动生成与图片合成
JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...
最新文章
- 抱歉,你和社会脱节了——对于中国教育的反思
- Ubuntu 14.04.1 安装 python mysqldb
- asio boost 异步错误处理_boost::asio::error的用法浅析
- Windows 7 VHD 启动
- 【Python】字符串和变量拼接的写法
- Oracle 10g 高级安装图文教程(二)
- javascript-流程控制-循环-分支-三元运算符
- Spring——bean生命周期
- 深度学习理论 10集课程视频(斯坦福 STATS 385)
- Luogu2024[NOI2001] 食物链
- QT入门引导 及其 案例讲解
- 谁才是中国企业服务的教父?
- 计算机课外兴趣小组活动教案,科技兴趣小组教案
- 视频怎么加水印上去,视频加水印怎么加?
- 使用js,对数值保留小数点后两位的处理(两种情况)
- 递归查询Sdcarad文件中的音乐,图片类同
- 动态规划:最长子序列
- Vivado Block Design流程(MicroBlaze)
- 离婚率离婚率离婚率离婚率
- linux常用命令(61):ps命令