网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快。但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴。这是本要用它做了一个项目后,简单的整理了一下。

组件下载地址:http://download.csdn.net/detail/lybwwp/6861821

下载文件包包含ThoughtWorks.QRCode.dll与dll的源码,强人可修改些源码。

字符串较长的情况下,用ThoughtWorks.QRCode生成二维码时出现“索引超出了数组界限”的错误。
解决方法:将 QRCodeVersion 改为0。

此代码功能:批量生成二维码图片保存到指定文件夹中(此图片可保存,可指定图片格式和图片大小)。

引用空间 ThoughtWorks.QRCode.dll

using ThoughtWorks.QRCode.Codec;

[csharp] view plaincopy print?
  1. #region 二维码生成
  2. /// <summary>
  3. /// 批量生成二维码图片
  4. /// </summary>
  5. private void Create_CodeImages()
  6. {
  7. try
  8. {
  9. if (myDataSet != null)
  10. {
  11. if (myDataSet.Tables[0].Rows.Count > 0)
  12. {
  13. //清空目录
  14. DeleteDir(currentPath);
  15. foreach (DataRow dr in myDataSet.Tables[0].Rows)
  16. {
  17. if (dr[2] != null)
  18. {
  19. //生成图片
  20. Bitmap image = Create_ImgCode(dr[2].ToString(), imgSize);
  21. //保存图片
  22. SaveImg(currentPath, image);
  23. }
  24. }
  25. //打开文件夹
  26. Open_File(currentPath);
  27. myDataSet = null;
  28. return;
  29. }
  30. }
  31. }
  32. catch(Exception ex) {
  33. MessageBox.Show(ex.ToString (), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  34. }
  35. }
  36. //程序路径
  37. readonly string currentPath = Application.StartupPath + @"\BarCode_Images";
  38. /// <summary>
  39. /// 保存图片
  40. /// </summary>
  41. /// <param name="strPath">保存路径</param>
  42. /// <param name="img">图片</param>
  43. public void SaveImg(string strPath, Bitmap img)
  44. {
  45. //保存图片到目录
  46. if (Directory.Exists(strPath))
  47. {
  48. //文件名称
  49. string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";
  50. img.Save(strPath + "/" + guid, System.Drawing.Imaging.ImageFormat.Png);
  51. }
  52. else
  53. {
  54. //当前目录不存在,则创建
  55. Directory.CreateDirectory(strPath);
  56. }
  57. }
  58. /// <summary>
  59. /// 生成二维码图片
  60. /// </summary>
  61. /// <param name="codeNumber">要生成二维码的字符串</param>
  62. /// <param name="size">大小尺寸</param>
  63. /// <returns>二维码图片</returns>
  64. public Bitmap Create_ImgCode(string codeNumber, int size)
  65. {
  66. //创建二维码生成类
  67. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
  68. //设置编码模式
  69. qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
  70. //设置编码测量度
  71. qrCodeEncoder.QRCodeScale = size;
  72. //设置编码版本
  73. qrCodeEncoder.QRCodeVersion = 0;
  74. //设置编码错误纠正
  75. qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
  76. //生成二维码图片
  77. System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
  78. return image;
  79. }
  80. /// <summary>
  81. /// /打开指定目录
  82. /// </summary>
  83. /// <param name="path"></param>
  84. public void Open_File(string path)
  85. {
  86. System.Diagnostics.Process.Start("explorer.exe", path);
  87. }
  88. /// <summary>
  89. /// 删除目录下所有文件
  90. /// </summary>
  91. /// <param name="aimPath">路径</param>
  92. public void DeleteDir(string aimPath)
  93. {
  94. try
  95. {
  96. //目录是否存在
  97. if (Directory.Exists(aimPath))
  98. {
  99. // 检查目标目录是否以目录分割字符结束如果不是则添加之
  100. if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
  101. aimPath += Path.DirectorySeparatorChar;
  102. // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  103. // 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
  104. string[] fileList = Directory.GetFiles(aimPath);
  105. //string[] fileList = Directory.GetFileSystemEntries(aimPath);
  106. // 遍历所有的文件和目录
  107. foreach (string file in fileList)
  108. {
  109. // 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
  110. if (Directory.Exists(file))
  111. {
  112. DeleteDir(aimPath + Path.GetFileName(file));
  113. }
  114. // 否则直接Delete文件
  115. else
  116. {
  117. File.Delete(aimPath + Path.GetFileName(file));
  118. }
  119. }
  120. }
  121. }
  122. catch (Exception e)
  123. {
  124. throw e;
  125. }
  126. }
  127. #endregion

C# 利用QRCode生成二维码图片相关推荐

  1. 利用qrcode生成二维码

    pip install qrcode pip install image ------- 下面是python代码: #!/usr/bin/env python import qrcode qr = q ...

  2. qrCode生成二维码图片

    QRCode.js 是一个用于生成二维码图片的插件. 1.文件脚本 var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,th ...

  3. Python利用qrcode生成二维码并解析结果

    使用到的库 1.qrcode 介绍:qrcode模块是Github上的一个开源项目,提供了生成二维码的接口.qrcode模块默认使用PIL库用于生成图像. 安装: pip install qrcode ...

  4. vue 中生成带logo的二维码vue-qr(可换背景) 利用qrcode生成二维码

    vue 中生成带logo的二维码 这里运用了一个插件 vue-qr npm install vue-qr --save <template><div><vue-qr :c ...

  5. 关于利用qrcode生成二维码的两种方式的区别

    首先以下内容是查找网上资料后了解的利用qrcode.js生成二维码的额两种方式,canvas(即画布)方式和table方式(原文地址http://www.helloweba.com/view-blog ...

  6. 利用qrcode生成二维码提取文件信息

    前言: 在一些不通外网的客户机器上,需要通过生成的mi来生成license.所以需要取出mi文件.想到使用qrcode 限制: 文件不能太大,因为一个二维码所能保存的信息很有限. 贴上代码: #!/u ...

  7. PHP使用qrCode生成二维码图片

    tip:endroid/qr-code依赖PHP版本>7.2,PHP环境必须开启支持GD2扩展库支持 composer命令下载包到项目中(https://packagist.org/packag ...

  8. Java利用Qrcode生成二维码

    1.jar包下载http://ishare.iask.sina.com.cn/download/explain.php?fileid=35428376 package ewm; import java ...

  9. qrcode生成二维码图片命名中文乱码解决

    转换字符编码为GBK function charsetToGBK($mixed) {if (is_array($mixed)) {foreach ($mixed as $k => $v) {if ...

最新文章

  1. USB2.0 设备类代码表
  2. 稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization
  3. 使用存储过程创建分页
  4. Java并发编程—常见面试题
  5. P5405-[CTS2019]氪金手游【树形dp,容斥,数学期望】
  6. 医学影像设备学_2020考研:影像大咖告诉你,学影像,就业好,不求人。
  7. Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤
  8. 低代码平台,JeecgBoot v3.0版本发布—新里程牌开始,迎接VUE3版本到来
  9. Linux之文件目录常用命令
  10. 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)...
  11. 容器技术Docker K8s 28 容器服务ACK基础与进阶-弹性伸缩
  12. WinRAR授权/激活(购买许可)
  13. linux ascii游戏,linux – Bash ASCII实现
  14. css加号图标_css样式画加号和减号(+和-)效果
  15. PHP字符串函数strtolower(将字符串转化为小写)
  16. Gartner:数字伦理登上Gartner 2021年隐私技术成熟度曲线期望膨胀期顶点
  17. Android Killer--安卓反编译工具
  18. 华为云双十一、双十二系列直播圆满收官,助力企业获数智化发展商机
  19. SystemVerilog验证教程(二)--SystemVerilog Interface 和 Timing Region
  20. 心得分享——c语言如何将多个字符串赋值给字符串数组(即c语言如何输入并储存多个字符串)

热门文章

  1. Qt Creator调试
  2. OpenGL text rendering文字渲染的实例
  3. OpenGL shadow mapping 阴影贴图的实例
  4. OpenGL创建一个GLFW窗口的实例
  5. OpenGL多光源Multiple lights
  6. C++实现hopcroft karp霍普克洛夫特-卡普算法(附完整源码)
  7. C++静态多态与动态多态
  8. C++STL的queue容器
  9. html纵向文本,html – 垂直对齐CSS圈中多行的文本
  10. 1.Hyper-V虚拟机在wifi环境下的外网连接配置