asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下。

直接上代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ThoughtWorks.QRCode.Codec;namespace Common.CommonHelper
{/// <summary>/// 传入字符串生成二维码/// </summary>public class QRCodeHelper{/// <summary>/// 根据传入的传入的字符串返回生成二维码的文件流字符串/// /// </summary>/// <param name="str"></param>/// <param name="logourl">二维码中间logo地址</param>/// <returns></returns>public static void BuildQRCodeString(string str, string logourl){var qrstring = "";QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;qrCodeEncoder.QRCodeScale = 4;qrCodeEncoder.QRCodeVersion = 8;qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;Image image = qrCodeEncoder.Encode(str);   //此处得到二维码图片MemoryStream MStream = new System.IO.MemoryStream();image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);   //将二维码图片转化为文件流MemoryStream stream = new System.IO.MemoryStream();var logoimage = CombinImage(image, logourl);   //最后得到加入logo的二维码MemoryStream qrcodeStream = new MemoryStream();logoimage.Save(qrcodeStream, System.Drawing.Imaging.ImageFormat.Png);                }/// <summary>/// 调用此函数后使此两种图片合并,类似相册,有个/// 背景图,中间贴自己的目标图片/// </summary>/// <param name="imgBack">粘贴的源图片</param>/// <param name="destImg">粘贴的目标图片</param>public static Image CombinImage(Image imgBack, string destImg){Image img = Image.FromFile(destImg);    //照片图片if (img.Height != 65 || img.Width != 65){img = KiResizeImage(img, 65, 65, 0);}Graphics g = Graphics.FromImage(imgBack);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, imgBack.Width / 2 - img.Width / 2, img.Width, img.Height);GC.Collect();return imgBack;}/// <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 KiResizeImage(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;}}public bool IsReusable{get{return false;}}}}

如有疑惑的地方,欢迎留言沟通。

asp.net 后台生成二维码及生成带logo的二维码相关推荐

  1. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  2. python二维码加动态图_用python自制个性二维码(设置带LOGO的二维码带动图)

    本文使用的是 python3.6 MyQR库 tkinter库 我们可以使用MyQR这个库 安装方式如下: 进入命令行输入: pip3 install MyQR 如果安装不成功多半是网络有问题,可以去 ...

  3. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))

    原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...

  4. C#利用ZXing.Net生成条形码,二维码和带Logo的二维码

    本文是利用ZXing.Net在WinForm中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正. 什么是ZXing.Net? ZXing是一个开放源码的,用Java实现的多种格式的 ...

  5. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码

    Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo

  6. PHP二维码在线制作生成系统源码 无需数据库 带logo图标

    简介: PHP二维码在线制作生成系统源码 无需数据库 带logo图标 网盘下载地址: http://kekewl.net/Myae89V9DX00 图片:

  7. QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

    QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应 ...

  8. zxing生成带logo的二维码

    倒Zxing依赖 implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.2.1' 代码段 import android.graphics.Bitma ...

  9. zxing 生成二维码,可设置logo、二维码颜色、白边大小

    主要是使用google的zxing 生成二维码,可设置logo.二维码前景色/后景色.白边大小.二维码大小 1.用到jar包 <dependency><groupId>com. ...

最新文章

  1. ES6新增的let与const
  2. linux avd 界面,Android Studio创建AVD
  3. 使用dynDNS+openSSH+putty突破公司防火墙
  4. 数据结构与算法--二叉查找树实现原理
  5. linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)...
  6. RabbitMQ 整合 Spring Cloud Stream
  7. 办公小技巧,OmniGraffle绘制流程图方法分享
  8. BZOJ 1012 - 树状数组+维护最大值 / 单调栈+二分 / 暴力(伪单调队列) / 线段树...
  9. IAR9.10下载(2021-02-23)
  10. Vue3 Fragment(碎片化节点)
  11. 计算机经常显示的英语单词,计算机专业英语单词大全
  12. CentOS 7 安装微信小程序开发工具
  13. 全基因组关联分析学习资料(GWAS tutorial)20210313更新版
  14. 四电极体脂称解决方案——测量原理
  15. python 判断是否为中文
  16. 应聘人工智能岗位?这10个必问的面试题,你准备好了吗
  17. Tableau实用小技巧之——双轴图表设置同步轴
  18. 创成汇:科技与艺术概念结合在手机上,效果居然这么强?_创成汇
  19. windows聚焦照片_如何拍摄始终聚焦的照片
  20. C 学习笔记 —— 高级指针话题

热门文章

  1. L84.linux命令每日一练 -- 第11章 Linux系统管理命令 -- rpm和yum
  2. 嵌入式学习笔记——ADC模数转换器
  3. 使用rest_framework的routers模块添加路由
  4. laravel 常用文档
  5. 用什么软件记录学员考勤好?
  6. 布尔矩阵与个性化推荐系统(原创)
  7. VMware虚拟机与windows主机之间相互复制粘贴
  8. 区县公安合成作战中心调研:(一)引言
  9. 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
  10. 谈谈自己关于阅读源码的一点鄙见