.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 图片合成、证书生成相关推荐

  1. Android 图片合成海报生成二维码,指定文字。

    一 ,图片合成,海报增加二维码,文字,或者用户ID.先看图 这个是没有合成之前的图. 合成之后的图. . 使用到的技术点 1,图片Glide 2, banner2.0 3, zxing class M ...

  2. .Net Core 图片合成、证书生成

    .Net Core 图片合成.证书生成 文章目录 .Net Core 图片合成.证书生成 前言 一.封装ImgText对象 二.ImageUtil帮助类 三.测试 总结 前言 在开发中有一些场景中我们 ...

  3. 手机上怎么在线生成gif?1分钟教你手机图片合成gif

    怎样通过手机实现在线制作GIF图片的操作呢?接下来,给大家分享两招gif制作(https://www.gif.cn/)小窍门-[GIF中文网]不需要下载任何软件,小白也能轻松上手.支持原画质导出,图片 ...

  4. C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成

    标题C# 后台 背景图片拼接图片与文字,文字图片生成与背景图片合成 最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地 ...

  5. php生成二维码并与背景图片合成

    1. 下载 phpqrcode  PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:http://phpqrcode.source ...

  6. 前端生成二维码与图片合成

    首先前端生成二维码 使用插件完成,插件为DrawQRCode.unitypackage  合成二维码直接使用DrawQRCode 类里提供的方法即可 生成二维码的方法 DrawCode_Color32 ...

  7. nodejs 实现二维码生成及图片合成

    游戏前端需要做分享功能.生成二维码后 在指定的图片上添加二维码和邀请码 生成新的图片 如图所示 1.使用 qr-code生成二维码 /*** 根据url 地址生成 二维码*/async createQ ...

  8. 图片合成gif怎么做?图片转gif,图片生成gif在线制作

    ​​怎么制作一张有趣的gif动图,很多时候我们常见的就是gif动图用来发表情包,殊不知gif动图可以用的还是挺多的,比如制作好看的风景gif动画,产品的宣传动图,用来做宣传素材或者是文章配图都是很好的 ...

  9. JAVA实现基于ZXing的二维码自动生成与图片合成

    JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...

最新文章

  1. 抱歉,你和社会脱节了——对于中国教育的反思
  2. Ubuntu 14.04.1 安装 python mysqldb
  3. asio boost 异步错误处理_boost::asio::error的用法浅析
  4. Windows 7 VHD 启动
  5. 【Python】字符串和变量拼接的写法
  6. Oracle 10g 高级安装图文教程(二)
  7. javascript-流程控制-循环-分支-三元运算符
  8. Spring——bean生命周期
  9. 深度学习理论 10集课程视频(斯坦福 STATS 385)
  10. Luogu2024[NOI2001] 食物链
  11. QT入门引导 及其 案例讲解
  12. 谁才是中国企业服务的教父?
  13. 计算机课外兴趣小组活动教案,科技兴趣小组教案
  14. 视频怎么加水印上去,视频加水印怎么加?
  15. 使用js,对数值保留小数点后两位的处理(两种情况)
  16. 递归查询Sdcarad文件中的音乐,图片类同
  17. 动态规划:最长子序列
  18. Vivado Block Design流程(MicroBlaze)
  19. 离婚率离婚率离婚率离婚率
  20. linux常用命令(61):ps命令

热门文章

  1. 【电源设计】09磁芯元件在开关电源中的应用
  2. 安装集成开发工具包XAMPP
  3. C语言课设——学生体测系统
  4. 微记账软件-站立会议09
  5. MoveIT-Noetic Assistant 总结
  6. C# 图像 24位转32位(真彩色)
  7. matlab计算 var,matlab 在险价值 VaR 的计算
  8. 卡梅隆大学计算机排名,美国卡梅隆大学怎么样
  9. 文字转语音软件哪个比较好?快来收藏这几个宝藏软件
  10. 如何给女朋友讲明白:Java中Stack(栈)与Heap(堆)