96009bc9
hexiaodong
hxd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
using QRCoder;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ZXing;
namespace NCC.Code.QrCode
{
/// <summary>
/// 二维码类
/// </summary>
public static class QrCodeCommon
{
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="plainText"></param>
/// <param name="pixel">像素大小</param>
/// <returns></returns>
public static Bitmap GetQRCode(string plainText, int pixel)
{
//var generator = new QRCodeGenerator();
//var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
//var qrCode = new QRCoder.QRCode(qrCodeData);
//var bitmap = qrCode.GetGraphic(pixel);
//return bitmap;
return null;
}
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="content">二维码内容</param>
/// <returns></returns>
public static Bitmap CreateQRCodeImage(string content)
{
//QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
//QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.Q);
//QRCode qrcode = new QRCode(qrCodeData);
//Bitmap qrCodeImage = qrcode.GetGraphic(20, Color.Black, Color.White, null, 15, 1, false);
//return qrCodeImage;
return null;
}
/// <summary>
/// 读取二维码(ThoughtWorks)
/// </summary>
/// <param name="map"></param>
/// <returns></returns>
public static string ReadQRCodeImage(Bitmap map)
{
try
{
QRCodeDecoder qrDecoder = new QRCodeDecoder();
string content = qrDecoder.decode(new QRCodeBitmapImage(map), Encoding.UTF8);
return content;
}
catch (Exception e)
{
return "";
}
}
/// <summary>
/// 添加二维码并保存到文件夹
/// </summary>
/// <param name="content">二维码内容</param>
/// <param name="dir">子文件夹</param>
/// <returns></returns>
public static string AddQRCodeSaveToFile(string content, string dir)
{
string fileName = Guid.NewGuid().ToString() + ".jpg";
string filePath = AppDomain.CurrentDomain.BaseDirectory.ToString() + @"resource\image\qr\" + dir;
try
{
Bitmap qrCodeImage = CreateQRCodeImage(content);
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
qrCodeImage.Save(filePath + @"\" + fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
qrCodeImage.Dispose();
return "/resource/image/qr/" + dir + "/" + fileName;
}
catch (Exception e)
{
return "";
}
}
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="plainText">内容</param>
/// <param name="pixel">像素大小 默认5 可自行调整</param>
/// <returns></returns>
public static Bitmap ToQrCode(this string plainText, int pixel = 5)
{
return GetQRCode(plainText, pixel);
}
/// <summary>
/// 生成二维码 Base64
/// </summary>
/// <param name="plainText">内容</param>
/// <param name="pixel">像素大小 默认5 可自行调整</param>
/// <param name="hasprev">包含data:image... 前缀 默认false</param>
/// <returns></returns>
public static string ToQrCodeBase64(this string plainText, int pixel = 5, bool hasprev = false)
{
string base64 = "";
if (hasprev)
{
base64 = "data:image/png;base64,";
}
base64 += FileHelper.BitmapToBase64(GetQRCode(plainText, pixel));
return base64;
}
}
}
|