1、点击项目名称右键-->管理NuGet程序包,打开NuGet包管理器窗口,进行搜索下载即可。

2、生成二维码:

 public Bitmap CreateQRCode(string str, int width, int height){EncodingOptions options = new QrCodeEncodingOptions{DisableECI = true,CharacterSet = "UTF-8", //编码Width = width,             //宽度Height = height             //高度};BarcodeWriter writer = new BarcodeWriter();writer.Format = BarcodeFormat.QR_CODE;writer.Options = options;Bitmap map = writer.Write(str);return map;}

普通二维码效果图      


3、生成带Logo二维码

        static Bitmap GenerateLogo(string text){//Logo 图片Bitmap logo = new Bitmap(@"D:\pic\34.jpg");//构造二维码写码器MultiFormatWriter writer = new MultiFormatWriter();Dictionary<EncodeHintType, object> hint = new Dictionary<EncodeHintType, object>();hint.Add(EncodeHintType.CHARACTER_SET, "UTF-8");hint.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//生成二维码 BitMatrix bm = writer.encode(text, BarcodeFormat.QR_CODE, 300, 300, hint);BarcodeWriter barcodeWriter = new BarcodeWriter();Bitmap map = barcodeWriter.Write(bm);//获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸)int[] rectangle = bm.getEnclosingRectangle();//计算插入图片的大小和位置int middleW = Math.Min((int)(rectangle[2] / 3.5), logo.Width);int middleH = Math.Min((int)(rectangle[3] / 3.5), logo.Height);int middleL = (map.Width - middleW) / 2;int middleT = (map.Height - middleH) / 2;//将img转换成bmp格式,否则后面无法创建Graphics对象Bitmap bmpimg = new Bitmap(map.Width, map.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bmpimg)){g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;g.DrawImage(map, 0, 0);}//将二维码插入图片Graphics myGraphic = Graphics.FromImage(bmpimg);//白底myGraphic.FillRectangle(Brushes.White, middleL, middleT, middleW, middleH);myGraphic.DrawImage(logo, middleL, middleT, middleW, middleH);//保存成图片return bmpimg;}

带Logo二维码效果


4、生成彩色带Logo的二维码

     public Bitmap GenerateColorLogo(string text){//Logo 图片Bitmap logo = new Bitmap(@"D:\pic\34.jpg");//构造二维码写码器MultiFormatWriter writer = new MultiFormatWriter();Dictionary<EncodeHintType, object> hint = new Dictionary<EncodeHintType, object>();hint.Add(EncodeHintType.CHARACTER_SET, "UTF-8");hint.Add(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//生成二维码 BitMatrix bm = writer.encode(text, BarcodeFormat.QR_CODE, 300, 300, hint);BarcodeWriter barcodeWriter = new BarcodeWriter();Bitmap map = barcodeWriter.Write(bm);//获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸)int[] rectangle = bm.getEnclosingRectangle();//计算插入图片的大小和位置int middleW = Math.Min((int)(rectangle[2] / 3.5), logo.Width);int middleH = Math.Min((int)(rectangle[3] / 3.5), logo.Height);int middleL = (map.Width - middleW) / 2;int middleT = (map.Height - middleH) / 2;Bitmap bmpimg = new Bitmap(map.Width, map.Height, PixelFormat.Format32bppArgb);using (Graphics g = Graphics.FromImage(bmpimg)){g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;g.DrawImage(map, 0, 0);}//将二维码插入图片Graphics myGraphic = Graphics.FromImage(bmpimg);//白底myGraphic.FillRectangle(Brushes.White, middleL, middleT, middleW, middleH);myGraphic.DrawImage(logo, middleL, middleT, middleW, middleH);Bitmap map2 = new Bitmap(bmpimg.Width, bmpimg.Height, PixelFormat.Format32bppArgb);Graphics graphics = Graphics.FromImage(map2);graphics.SmoothingMode = SmoothingMode.AntiAlias;graphics.DrawImage(bmpimg, 0, 0);map.Dispose();Bitmap map3 = QrCodeVertical(map2.Width, map2.Height);Color color = Color.FromArgb(200, 233, 0, 1);int num = 92;try{num -= (Encoding.UTF8.GetBytes(text).Length - 20) / 2;}catch (Exception e){Console.WriteLine(e);}int num2 = num;int num3 = num2;for (int i = 0; i < map2.Width; i++){for (int j = 0; j < map2.Height; j++){Color color3;Color pixel = map2.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)) ? map3.GetPixel(i, j) : pixel;}map2.SetPixel(i, j, color3);}}map3.Dispose();           return map2;}///渐变颜色private Bitmap QrCodeVertical(int width, int heigth){var image = new Bitmap(width, heigth, PixelFormat.Format32bppArgb);var rect = new Rectangle(0, 0, width, heigth);var brush = new LinearGradientBrush(rect, Color.FromArgb(230, 0x01, 0xa9, 160), Color.FromArgb(0xff, 150, 90, 0x0), LinearGradientMode.Vertical);Graphics graphics = Graphics.FromImage(image);graphics.FillRectangle(brush, rect);graphics.Dispose();return image;}

带Logo的彩色二维码  


.net\C#基于zxing的彩色、Logo二维码生成---随笔相关推荐

  1. 基于zxing的仿微信二维码扫描界面

    基于zxing的仿微信二维码扫描界面 https://github.com/iamlocky/ZxingLite 本项目fork自yangxixi88/ZxingLite,在原项目基础上添加了本地图片 ...

  2. zxing 二维码、带logo二维码生成

    <span style="font-size:18px;">普通二维码生成</span> <span style="font-size:18 ...

  3. iOS - 二维码生成、扫描及页面跳转

    主要内容的介绍 普通二维码生成 彩色二维码生成 带有小图标二维码生成 扫描二维码的自定义 是否开启闪光灯 从相册中获取二维码 扫描成功之后提示音 扫描成功之后的界面之间的跳转 扫描二维码界面采取了微信 ...

  4. springBoot二维码生成案例

    1.首先引入谷歌开源项目依赖: <!-- 二维码支持包 --> <dependency><groupId>com.google.zxing</groupId& ...

  5. ZXing生成二维码,条码,logo二维码

    ZXing的使用 准备工作 一.生成普通二维码 1.1生成普通二维码 1.2低版本包二维码去除白边 二.生成logo二维码 三.生成条形码 测试 准备工作 1.需要依赖zxing的jar包 jar下载 ...

  6. java关于Zxing 生成带Logo 二维码图片失真问题

    java关于Zxing 生成带Logo 二维码图片失真问题 问题点 logo本身是高清图片,但是Zxing生成的二维码中,logo像素失真,感觉被严重压缩一样. 排查问题 是Graphics2D 绘制 ...

  7. Zxing实现二维码生成和解析,可带logo

        在项目中使用zxing生成二维码提供项目支撑(ZXing是一个开源Java类库用于解析多种格式的条形码和二维码),其余SwetakeQRCode.BarCode4j等等工具可去了解. 简单介绍 ...

  8. ZXing生成条形码、二维码、带logo二维码

    采用的是开源的ZXing,Maven配置如下,jar包下载地址,自己选择版本下载,顺便推荐下Maven Repository <!-- https://mvnrepository.com/art ...

  9. android Zxing二维码生成带Logo

    生成二维码效果: 1:导入zxing依赖 implementation 'com.google.zxing:core:3.3.0' 2: 导入一个工具类,直接复制就可以注意包名 package com ...

  10. 矩形二维码生成,解析(彩色、多个)

    矩形二维码生成,解析(彩色.多个) 说明 java生成普通二维码.带logo二维码.彩色二维码 java解析彩色.多个二维码(一个图片上的多个二维码) 使用到的第三方jar包如下: com.googl ...

最新文章

  1. 拼多多程序员:因为看到同事被抬上救护车,我被开除了!
  2. 在Objective-C中创建一个抽象类
  3. 配置tomcat的环境变量
  4. flyway版本号_Flyway版本化管理数据库脚本
  5. 前端学习(1288):nodejs模块化开发
  6. 一篇文章带你了解Python运算符重载
  7. Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)
  8. JVM 怎么判断对象已经死了?
  9. Swift - 29 - 参数的默认值
  10. xbox360使用_适用于Xbox 360的HD-DVD Player
  11. 基于HoG 的图像特征提取及其分类研究
  12. java核心技术卷I 第4-5章
  13. 技术胖TypeScript图文视频教程
  14. 教你分割视频,用多个视频随机合并,添加音频
  15. 完美解决虚拟机占用硬盘越来越大、删除快照无效、菜单栏显示不全等问题
  16. 年度盘点!Flink 社区全年的精华内容都在这里啦(内附福利)
  17. 编程思想-模块化-产品模块化设计:产品模块化设计
  18. Java导出多个excel压缩成zip下载
  19. apmserv mysql5.1启动失败_使用APMServ时出现“1、Apache启动失败,请检查相关配置。√MySQL5.1已启动。”错误的终极解决办法:...
  20. 聚焦化工安全:化工厂人员定位

热门文章

  1. Python多维数组,已知多科成绩求英语成绩最高的学生名
  2. c语言列出最简真分数序列,C语言实例 列出真分数序列
  3. Python 解析 spec 文件
  4. Day101.MyBatisPlus(MP):自动填充、乐观锁、分页、逻辑删除、Wrapper条件构造器
  5. IoT黑板报0209:工信部明确增加物联网网号
  6. CircularProgressIndicator
  7. 2016.3.18华为上机题:拼音转数字
  8. wordpress教程
  9. 2022CTFSHOW菜狗杯部分题目(四)
  10. 计算机科学和热力学,相图热力学数据库及其计算软件: 过去、现在和将来