/// <summary>/// 生成彩色二维码/// </summary>/// <param name="data">二维码内容</param>/// <param name="filename">生成的图片名称(如:123.jpg)</param>/// <param name="filepath">图片存放路径(如:Images\\CustomerQRCode)</param>/// <returns></returns>public static bool CreateQRCode(string data, string filename, string filepath){if (string.IsNullOrWhiteSpace(data) || string.IsNullOrWhiteSpace(filename) || string.IsNullOrWhiteSpace(filepath))return false;QRCodeWriter writer = new QRCodeWriter();Hashtable hints = new Hashtable();hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");hints.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);hints.Add(EncodeHintType.VERSION_START, 5);Bitmap image = writer.encode(data, BarcodeFormat.QR_CODE, 0x200, 0x200, hints).ToBitmap();//黑白二维码
Bitmap bitmap2 = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb);Graphics graphics = Graphics.FromImage(bitmap2);graphics.SmoothingMode = SmoothingMode.AntiAlias;graphics.DrawImage(image, 0, 0);image.Dispose();Bitmap bitmap3 = QrCodeVertical(bitmap2.Width, bitmap2.Height);//彩色渐变二维码
Color color = Color.FromArgb(200, 224, 114, 1);int num = 140;try{num -= (Encoding.UTF8.GetBytes(data).Length - 20) / 2;}catch (Exception){}int num2 = num;int num3 = num2;for (int i = 0; i < bitmap2.Width; i++){for (int j = 0; j < bitmap2.Height; j++){Color color3;Color pixel = bitmap2.GetPixel(i, j);if ((i < num2) && (j < num3)){color3 = ((pixel.A == 0xff) && (pixel.B == 0)) ? color : pixel;}else{color3 = ((pixel.A == 0xff) && (pixel.B == 0)) ? bitmap3.GetPixel(i, j) : pixel;}bitmap2.SetPixel(i, j, color3);}}bitmap3.Dispose();#region 添加二维码标题string str2 = "";//标题一if (str2.Length < 1){str2 = "MyTest";}float emSize = 32f;emSize -= (str2.Length - 4) * 1.8f;Font font = new Font("微软雅黑", emSize, FontStyle.Bold);SizeF ef = graphics.MeasureString(str2, font);float num7 = (bitmap2.Width - ef.Width) / 2f;Brush brush = new SolidBrush(Color.FromArgb(0xff, 0x3a, 0xb2, 0xc2));Brush brush2 = new SolidBrush(Color.White);int y = 50;graphics.FillRectangle(brush2, new Rectangle((int)num7, y, (int)ef.Width, (int)ef.Height));graphics.DrawString(str2, font, brush, (float)((int)num7), (float)y);Brush brush3 = new SolidBrush(Color.FromArgb(0xff, 0x3a, 0xb2, 0xc2));int width = 140;graphics.FillEllipse(brush2, (bitmap2.Width - width) / 2, (bitmap2.Height - width) / 2, width, width);int num10 = 0x80;graphics.FillEllipse(brush3, (bitmap2.Width - num10) / 2, (bitmap2.Height - num10) / 2, num10, num10);int num11 = 110;graphics.FillEllipse(brush2, (bitmap2.Width - num11) / 2, (bitmap2.Height - num11) / 2, num11, num11);#endregion#region 添加二维码中间内容 str2 = "";//标题二if (str2.Length < 1){str2 = "Test";}float num12 = 32f;num12 -= (str2.Length - 3) * 3.5f;Font font2 = new Font("Meiryo", num12, FontStyle.Bold);ef = graphics.MeasureString(str2, font2);float x = ((bitmap2.Width - ef.Width) / 2f) + 2f;float num14 = ((bitmap2.Height - ef.Height) / 2f) + 8f;graphics.DrawString(str2, font2, brush3, x, num14);graphics.Dispose();#endregionfilepath = System.Web.HttpContext.Current.Server.MapPath(@"~\"+ filepath) + "\\" + filename;//filepath = filepath + filename;System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);bitmap2.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);fs.Close();image.Dispose();return true;}

转载于:https://www.cnblogs.com/z-hj/p/6055137.html

C# 生成彩色二维码相关推荐

  1. 【彩色二维码】处理生成彩色二维码图片

    调用草料二维码的API接口 https://cli.im/api/qrcode/code?text=***&mhid=*** mhid:草料二维码的模版样式id,这里选择的是[vUbEWVm7 ...

  2. Android之自定义生成彩色二维码

    先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...

  3. Python如何生成彩色二维码和动态二维码

    Python如何生成彩色二维码和动态二维码 第一步,导入二维码图片,为黑白图片: 查看图片 第二步,生成彩色的二维码: 查看彩色背景 将图片插入二维码中,生成彩色二维码: 查看生成的二维码. 第三步, ...

  4. [Python]使用QRCode生成彩色二维码

    一. 安装QRCode模块 QRCode模块依赖于Pillow模块,在安装QRCode模块前需要先安装Pillow模块.可使用如下命令安装: pip install Pillow QRCode模块安装 ...

  5. 生成彩色二维码(渐变色、插入图片和文字)

    花了一天时间,研究生成彩色的二维码程序. 下面是阶段性成果:渐变颜色.插入文字和log图片. 使二维码看起来更协调.更醒目.突出强调文字和logo,而不仅仅是一个信息的黑盒. 基于zxing的c#版本 ...

  6. python qrcode生成彩色二维码

    git 地址:https://github.com/lincolnloop/python-qrcode def demo():img = qrcode.make("你今年要发财啊!!!&qu ...

  7. java生成彩色二维码,附带中心logo

    利用java生成二维码需要导入两个jar包,前往以下网址下载即可 http://repo1.maven.org/maven2/com/google/zxing 效果图 import java.awt. ...

  8. Python生成动态二维码,运用神库:qrcode

    一.介绍 1.1 二维码 二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response.是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见.我们 ...

  9. python生成二维码教程_使用Python生成个性二维码

    任务目的 这一步会介绍通过Python中的MyQR包实现生成二维码的操作,包括生成普通二维码.带有静态图和动态图的二维码,同时也会对MyQR生成二维码的常用参数进行介绍说明. 任务步骤注:CVM适合用 ...

最新文章

  1. Quintum 语音网关设置方法
  2. android 听筒播放声音
  3. gps卫星位置计算程序matlab_卫星空间大地测量中GPS周跳探测的四种方法
  4. 关于vmware 桥接 不识别无线网卡 问题解决方案
  5. linux7切断防火墙,Linux7关闭防火墙
  6. 东南大学4系短学期matlab,东南大学短学期混凝土教学实践
  7. 杨森翔的书法【斗方】
  8. STM32使用SPI通信驱动2.4G无线射频模块发送数据
  9. 离线安装 VS2017 的正确姿势
  10. java 获取 jframe 内容_Java如何获取组件的JFrame?
  11. SpringMVC中自定义类型转换器
  12. java笔记_2020年java程序员、java工程师必备资料(内含java学习思维图、视频教程、源码笔记等)...
  13. 30天敏捷结果(24):恢复你的精力
  14. java 汉字按拼音排序_Java当中汉字按照拼音排序
  15. 某城郊110kV降压变电站监控系统设计
  16. 怎么查看计算机簇大小,分区格式与簇的大小讲解
  17. 2020牛客暑期多校训练营(第九场) The Crime-solving Plan of Groundhog
  18. 什么是node.js
  19. mac删除ssh key_好用的mac终端命令仿真工具
  20. Python - yamail - 进阶之路 - Day08

热门文章

  1. claim acclaim proclaim exclaim
  2. 用于移动端的相关网址
  3. 版本控制概述|VSS/CVS/SVN/Git比较|Windows下SVN搭建详细介绍
  4. 输入一个字母,输出后五个字母
  5. 程序员简历这么写,offer收到手软。
  6. Python3:我低调的只用一行代码,就导入Python所有库!
  7. Day07——PS相关操作、学成在线案例
  8. oppo手机如何开启云服务器,oppor7关闭云服务器(oppo云相册怎么关闭)
  9. 待办日程怎么设置稍后提醒
  10. java 中文解码_java使用URLDecoder和URLEncoder对中文字符进行编码和解码