[C#]二维码生成、解码(QRCode)【支持winform、web调用】

December 6, 2010 | tags 二维码  QRCode  C#   | views
Comments 36

winform(Demo)下载:QRCode.rar  

web(Demo)下载:webQRCode.rar

【ThoughtWorks.QRCode.dll 就是类库】【demo中有这个dll,不要再让我发邮件了~~我伤不起啊~~】

使用时需要增加:
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;

演示包中的“QRCode.dll”是封装的类库。可以留邮箱,发给你们源码。

主要源代码:

        1.生成二维码
        

折叠C# Code复制内容到剪贴板
  1. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();  
  2. String encoding = cboEncoding.Text;  
  3. if (encoding == "Byte")  
  4. {  
  5.      qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;  
  6. }  
  7. else if (encoding == "AlphaNumeric")  
  8. {  
  9.      qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;  
  10. }  
  11. else if (encoding == "Numeric")  
  12. {  
  13.      qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;  
  14. }  
  15. try  
  16. {  
  17.      int scale = Convert.ToInt16(txtSize.Text);  
  18.      qrCodeEncoder.QRCodeScale = scale;  
  19. }  
  20. catch (Exception ex)  
  21. {  
  22.      MessageBox.Show("Invalid size!");  
  23.      return;  
  24. }  
  25. try  
  26. {  
  27.      int version = Convert.ToInt16(cboVersion.Text);  
  28.      qrCodeEncoder.QRCodeVersion = version;  
  29. }  
  30. catch (Exception ex)  
  31. {  
  32.      MessageBox.Show("Invalid version !");  
  33. }  
  34.   
  35. string errorCorrect = cboCorrectionLevel.Text;  
  36. if (errorCorrect == "L")  
  37.      qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;  
  38. else if (errorCorrect == "M")  
  39.      qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;  
  40. else if (errorCorrect == "Q")  
  41.      qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;  
  42. else if (errorCorrect == "H")  
  43.      qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;   
  44. Image image;  
  45. String data = txtEncodeData.Text;  
  46. image = qrCodeEncoder.Encode(data);  
  47. pb_view.Image = image;  

 

        2.解析二维码

折叠C# Code复制内容到剪贴板
  1. QRCodeDecoder decoder = new QRCodeDecoder();  
  2. String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(pb_view.Image)));  
  3. txtEncodeData.Text = decodedString;  

 

 



  • quote 2.木木
  • 你好,发我好么,谢谢 zjlin@vip.qq.com
    cooc168 于 2010-12-16 13:50:35 回复
    邮件已发,注意查收~
  • 2010-12-14 22:16:54 回复该留言
  • quote 3.orgjava
  • http://www.orgjava.tk
  • 给发一份吧...谢谢......
    coco168 于 2010-12-24 22:02:17 回复
    你不给我邮箱,我怎么发~~补个邮箱给我 呵呵
    coco168 于 2010-12-24 22:20:47 回复
    邮件已发。以后请在留言信息里面标注邮箱,呵呵

    由 coco168 于 2010-12-25 11:07:21 最后编辑
  • 2010-12-21 17:28:21 回复该留言
  • quote 4.coxhsiang
  • 麻烦发给我一份。非常之感谢!
    coxhsiang@gmail.com
    coco168 于 2010-12-29 16:13:15 回复
    邮件已发
  • 2010-12-28 13:09:10 回复该留言
  • quote 5.木头
  • 给我发一份,谢谢
    shi_jz@126.com
    coco168 于 2010-12-29 16:13:21 回复
    邮件已发
  • 2010-12-28 13:25:57 回复该留言
  • quote 6.Aplysia
  • 也给我发一份吧,谢谢了.
    coco168 于 2011-1-3 21:49:41 回复
    邮件已发,注意查收~
  • 2011-1-3 18:38:51 回复该留言
  • quote 7.charrote
  • 楼主 能把QR二维发一个到我的邮箱吗
    charrote.vinson@163.com
    coco168 于 2011-1-10 9:50:33 回复
    邮件已发,注意查收~
    charrote 于 2011-1-10 11:23:57 回复
    谢谢
  • 2011-1-10 9:31:21 回复该留言
  • quote 8.Roc
  • 发我一份,谢谢!guiyuepeng@gmail.com
    coco168 于 2011-1-17 20:22:25 回复
    邮件已发,注意查收~
  • 2011-1-17 17:39:21 回复该留言
  • quote 10.jevin
  • 谢谢,请楼主发一份QR源码,谢谢了181758191@qq.com
    coco168 于 2011-2-11 20:26:19 回复
    邮件已发,注意查收~
  • 2011-1-27 16:14:25 回复该留言
  • quote 11.jack
  • 谢谢,请楼主发一份QR源码,谢谢了 gui_198641@163.com
    coco168 于 2011-2-11 20:26:26 回复
    邮件已发,注意查收~
  • 2011-2-11 8:58:35 回复该留言
  • quote 12.zhgq1123
  • QR源码也发给我一份好吗,谢谢了,我的邮箱1123zhgq@163.com
    coco168 于 2011-2-14 14:13:31 回复
    邮件已发,注意查收~
  • 2011-2-14 11:08:15 回复该留言
  • quote 13.陈先生
  • QR源码也发给我一份好吗,谢谢了,我的邮箱bb_chen1982@163.com
    coco168 于 2011-2-15 14:07:54 回复
    邮件已发,注意查收~
  • 2011-2-15 11:37:11 回复该留言
  • quote 14.罗建
  • 请LZ发一份源码,谢谢 jackxyf7689@hotmail.com
    coco168 于 2011-2-18 15:50:57 回复
    邮件已发,注意查收~
  • 2011-2-17 14:34:18 回复该留言
  • quote 15.王银松
  • 谢谢楼主了,正在学习呢 444148743@qq.com
    coco168 于 2011-2-26 10:45:06 回复
    邮件已发~~
  • 2011-2-23 14:00:50 回复该留言
  • quote 16.theosoft
  • theosoft@163.com
    demo下不了,求demo,求源码,谢谢!
    coco168 于 2011-2-26 10:45:17 回复
    邮件已发~~
  • 2011-2-24 14:34:12 回复该留言
  • quote 17.toobao
  • demo下不了,麻烦发一份到我邮箱,谢谢!
    hu_colin@163.com
    coco168 于 2011-2-26 10:45:23 回复
    邮件已发~~
    coco168 于 2011-3-1 21:33:17 回复
    谢谢 的确是个坏包,我现在重新传了份.以后都从网站上下载吧.
  • 2011-2-25 16:15:59 回复该留言
  • quote 18.ighm
  • 您好,我正在学习相关方面的知识,可一个发给我一份 QRCode.dll 的代码吗? glaucushm@gmail.com
  • 2011-3-12 20:03:18 回复该留言
  • quote 20.coco168
  • 大家都从网站上下载吧,最上面有个下载连接,不单独发邮件了...
  • 2011-3-17 14:48:03 回复该留言
  • quote 22.cvvn
  • 我需要将数据加密后生成二维码印刷出来,通过扫描枪解码并解密还原出数据,谁能帮我??
    coco168 于 2011-4-29 14:02:26 回复
    逻辑处理不麻烦,你就用你的加密类加密数据,然后用这个类生成二维码,解密反之,自己写写吧...
  • 2011-4-27 15:30:38 回复该留言
  • quote 23.zoldada
  • 感谢楼主大无畏贡献精神,发我一份,共同学习下吧!511728088@qq.com
    coco168 于 2011-4-29 14:02:58 回复
    从网站上下载吧,最上面有个下载连接,不单独发邮件了...
  • 2011-4-28 16:45:25 回复该留言
  • quote 24.dadaf
  • 楼主大大,你这个QRCode的生成符合国标GBT 18284-2000的吗?
    coco168 于 2011-4-29 14:03:16 回复
    从网站上下载吧,最上面有个下载连接,不单独发邮件了 谢谢支持~~~
  • 2011-4-28 21:56:15 回复该留言
  • quote 25.kinklim
  • 楼主大大,发我一份.找了很久。希望可以用上。
    kinklim 于 2011-5-6 17:43:37 回复
    kinklim_1987@hotmail.com
    最上面有网址吗?怎么找不到。可以发link给我吗?
    感恩感恩。
    coco168. 于 2011-5-7 8:20:48 回复
    发过去了..最上面,演示源码下载(Dome):QRCode.rar,这个就是连接~~
  • 2011-5-6 17:39:55 回复该留言
  • quote 28.longblog
  • 博主有试过在web中应用生成二维码吗?
    coco168 于 2011-5-16 21:22:31 回复
    web应用我今天做了下,实现了,放到这个文章最上面了,里面包括dll,你自己下下来继续研究吧。
  • 2011-5-16 14:24:32 回复该留言
  • quote 29.ming
  • QRCodeEncoder.cs 658行,会出错
    for (int i = 0; i < l2; i++)
    coco168. 于 2011-7-16 9:46:39 回复
    ?你是如何测试出来的
  • 2011-7-8 2:12:03 回复该留言
  • quote 30.自由
  • 楼主您好,请问您的QRCode支持中文吗?中文会乱码吗??谢谢楼主
    coco168 于 2011-9-17 17:02:22 回复
    亲测...支持中文...不会乱码...
  • 2011-9-13 18:07:29 回复该留言
  • quote 31.自由
  • 楼主,您测得时候有没有改代码啊?为什么我测得时候就乱码啊?
    coco168 于 2011-9-18 19:33:05 回复
    你用的B\S结构的?那就指定一下编码试试
  • 2011-9-18 19:19:46 回复该留言
  • quote 32.自由
  • 楼主 我用的是cs的啊
    coco168. 于 2011-9-22 18:02:46 回复
    你是用这个dll生成的二维码用别的识别软件识别出来乱码,还是用这个软件识别二维码出现的乱码,软件上面有一些参数设置,你看看是不是设置上有什么问题,我找了几台机器测试,都没发现你说的乱码问题
  • 2011-9-21 9:58:15 回复该留言
  • quote 33.路过
  • LZ你好,用这个dll解码后也是乱码,不知道是怎么回事了。。
    QRCodeDecoder decoder = new QRCodeDecoder();
    System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("GB2312");
    String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(@"G:\webQRCode\QRCodeImages\20110928020942.png")), gb2312);
    txtEncodeData.Text = decodedString;
    解码我是上面这样写的,如果用LZ你的例子也是乱码
  • 2011-9-28 14:13:25 回复该留言
  • quote 35.学习
  • LZ,用这个DLL生成的二维码 解码出来是乱码、、、、、、请指教、、、谢谢,LZ
  • 2011-10-19 10:33:27 回复该留言


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。