QRCode.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using ThoughtWorks.QRCode.Codec;
  8. namespace Common
  9. {
  10. public class QRCode
  11. {
  12. public string rtStrQRCode(string enCodeString)
  13. {
  14. System.Drawing.Bitmap bt;
  15. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
  16. qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
  17. qrCodeEncoder.QRCodeScale = 10;//大小(值越大生成的二维码图片像素越高)
  18. qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
  19. qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)
  20. qrCodeEncoder.QRCodeBackgroundColor = Color.White;//背景色
  21. qrCodeEncoder.QRCodeForegroundColor = Color.Black;//前景色
  22. bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
  23. string filename = enCodeString;// "code";
  24. string file_path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"imgShort\QRCode\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
  25. string codeUrl = file_path + filename + ".jpg";
  26. //根据文件名称,自动建立对应目录
  27. if (!System.IO.Directory.Exists(file_path))
  28. {
  29. System.IO.Directory.CreateDirectory(file_path);
  30. }
  31. ////防止内容重复,导致名称重复问题,
  32. ////若要每次更新,可去掉本段代码 ↓↓↓↓↓
  33. //int i = 1;
  34. //while (System.IO.File.Exists(codeUrl))
  35. //{
  36. // string _filename = filename + "("+i+")";
  37. // codeUrl = file_path + _filename + ".jpg";
  38. // i++;
  39. //}
  40. bt.Save(codeUrl);//保存图片
  41. return codeUrl;
  42. }
  43. public Image rtImgQRCode(string enCodeString)
  44. {
  45. System.Drawing.Bitmap bt;
  46. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
  47. qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
  48. qrCodeEncoder.QRCodeScale = 10;//大小(值越大生成的二维码图片像素越高)
  49. qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
  50. qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)
  51. qrCodeEncoder.QRCodeBackgroundColor = Color.White;//背景色
  52. qrCodeEncoder.QRCodeForegroundColor = Color.Black;//前景色
  53. bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
  54. return bt;
  55. }
  56. }
  57. }