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

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

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

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

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

引用空间 ThoughtWorks.QRCode.dll

using ThoughtWorks.QRCode.Codec;

    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生成二维码图片

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

  2. asp.net(C#)利用QRCode生成二维码---.NET菜鸟的成长之路

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...

  3. asp.net(C#)利用QRCode生成二维码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...

  4. Vue前端利用qrcode生成二维码

    <div id="qrcode" style="width: 560px;height: 560px;background-color: white;"& ...

  5. asp.net(C#)利用QRCode生成二维码(续)-在二维码图片中心加Logo或图像

    <%@ WebHandler Language="C#" Class="GetQRCode" %> using System; using Syst ...

  6. 小程序canvas生成二维码图片踩的坑

    1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...

  7. 如何利用ThoughtWorks.QRCode 生成二维码

    1.引用ThoughtWorks.QRCode.dll 在nuget上查找即可引用,也可自行下载 2.生成二维码静态方法 参数: 二维码内容:fileUrl 二维码图片名:typeName #regi ...

  8. C#Qrcode生成二维码支持中文,带图片,带文字

    C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...

  9. vue2.0生成二维码图片并且下载图片到本地兼容写法

    vue生成二维码图片,这里使用的是qrcode.js 这个插件(亲测写法,兼容没有问题) 第一步,下载插件 需要注意,这里下载的是qrcodejs2 cnpm install --save qrcod ...

随机推荐

  1. CSS 相邻选择器(七)

    一.相邻选择器 相邻选择器前后部分之间用一个加号(+)隔开,前后两部分选择反符在结构上属于同级关系,如 相邻选择器,是根据左侧选择符指定相邻元素,然后在该相邻元素后面寻找匹配匹配右侧选择符的相信元素 ...

  2. 多线程之NSOperation和NSOperationQueue

    这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里.下面我讲更多的用代码+注释的方式来讲如何使用NSOperation和NSOperationQueue. 1.NSOp ...

  3. swift 字符转为类,代码创建控件

    在使用类之前要先获得 命名空间 通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类 // 从info字典中获取到 命名空间 转为字符型 let NS = NSBundle.mai ...

  4. Intelli IDEA ultimate破解方法

    今天装了个Intelli IDEA,ultimate版本,使用网上方法破解了,破解方法参考网址  http://appcode.aliapp.com/idea.jsp Intelli IDEA有个vi ...

  5. 菜鸟程序员之Asp.net MVC Session过期异常的处理

    小赵是刚毕业的计算机专业方面的大学生,4年的大学时间里面,他读过了很多编程方面的数据,也动手也了很多代码.现在毕业了,他如愿的加入了T公司,开始了自己的程序员生涯.他信心满满,相信自己4年的学习到的东 ...

  6. [转] Paxos算法2-算法过程(实现)

    请先参考前文:Paxos算法1 1.编号处理 根据P2c ,proposer在提案前会先咨询acceptor查看其批准的最大的编号和value,再决定提交哪个value.之前我们一直强调更高编号的pr ...

  7. CityEngine Web Scene如何在IIS下部署 [转]

    CityEngine2012新增了发布Web场景的功能,可以通过本地的Web Scene Viewer打开,也可以发布到ArcGIS Online云端进行共享.如下图:   注:3ws场景包制作方法: ...

  8. 复制文件的bat脚本

    数据库备份到不同的机器上的一段脚本 使用系统的copy 命令来复制单个文件 如果要复制某个文件夹,则使用xcopy 命令 set date=%Date:~0,4%%Date:~5,2%%Date:~8 ...

  9. zsh

    一.简介 Zsh 也许是目前最好用的 shell,是 bash 替代品中较为优秀的一个.   二.优点 1)补全 zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等. 按下 tab 键 ...

  10. (转)github设置添加SSH

    很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...