QRCoder
| 建造 | 代码覆盖范围 | 建立状态 | Nuget软件包 |
|---|---|---|---|
| 最新 /稳定 | |||
| CI /最后一个提交 |
信息
QRCoder是一个简单的库,用C#.NET编写,它使您可以创建QR码。它没有对外部库1的任何依赖关系,可以作为nuget上的软件包可用,并支持.NET Framework,.NET Core,.NET标准和.NET。可以在此处找到支持的目标框架的完整列表。
随意抓取/分叉该项目并使其变得更好!
有关更多信息,请参见: QRCode Wiki |创作者的博客(英语)|创作者的博客(德语)
发行说明
可以在此处阅读当前和所有版本的发行说明:?发行说明
法律信息和学分
QRCoder是Raffael Herrmann的一个项目,于10/2013首次发行。它是根据MIT许可证获得许可的。
安装
请检查此GitHub存储库,或通过Nuget软件包管理器安装QRCoder 。如果要使用Nuget,只需搜索“ QRCoder ”或在Nuget软件包管理器中运行以下命令:
PM > Install-Package QRCoder
CI构建
Nuget Feed仅包含主要/稳定的版本。如果您需要最新的功能和功能,则可以通过GitHub软件包使用CI构建。 (可以在此处找到有关如何在Nuget软件包管理器中使用GitHub软件包的更多信息。)
用法
您只需要几行代码即可生成第一个QR码。
using ( QRCodeGenerator qrGenerator = new QRCodeGenerator ( ) ) using ( QRCodeData qrCodeData = qrGenerator . CreateQrCode ( \"The text which should be encoded.\" , QRCodeGenerator . ECCLevel . Q ) ) using ( PngByteQRCode qrCode = new PngByteQRCode ( qrCodeData ) ) { byte [ ] qrCodeImage = qrCode . GetGraphic ( 20 ) ; }
还有很多其他选择。因此,请随时在我们的Wiki:Wiki:如何使用QRCoder中阅读更多信息
特殊渲染类型
除了用于以位图格式创建QR码的普通pngbyteqrcode-class(如上示例所示)外,还有更多QR代码渲染类,每个类别是另一个特殊目的。
- 二维码
- artqrcode
- ASCIIQRCODE
- base64qrcode
- bitmapbyteqrcode
- pdfbyteqrcode
- pngbyteqrcode
- PostScriptQrcode
- SVGQRCODE
- UNITYQRCODE(通过QRCoder .NITY )
- XAMLQRCODE(通过QRCoder .XAML )
注意:请注意,并非所有目标框架上都有所有渲染器。请检查我们Wiki中的兼容性表,以查看您喜欢的目标框架上是否有特定的渲染器。
有关不同渲染类型的更多信息,请单击上面列表中的一种类型或查看:Wiki:高级用法-QR -CODE RENDERERS
payloadGenerator.cs-生成QR码有效载荷
从技术上讲,QR码只是文本/字符串的视觉表示。但是,大多数QR码读取器都可以读取触发不同动作的“特殊” QR码。
例如:WIFI-QRCODES在智能手机扫描时,智能手机会自动加入访问点。
在生成QR代码时,通过使用特殊结构化有效载荷字符串生成此“特殊” QR码。 PayloadGenerator.cs类可帮助您生成此有效负载字符串。例如,要生成wifi有效载荷,您只需要一行一行代码:
PayloadGenerator . WiFi wifiPayload = new PayloadGenerator . WiFi ( \"MyWiFi-SSID\" , \"MyWiFi-Pass\" , PayloadGenerator . WiFi . Authentication . WPA ) ;
要从此有效负载中生成QR码,只需调用“ tostring()” – 方法并将其传递给QRCoder 。
//[...] QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload . ToString ( ) , QRCodeGenerator . ECCLevel . Q ) ; //[...]
您还可以使用接受有效载荷作为参数的过载方法。有效负载生成器可以具有QR代码版本集(默认为自动集),ECC级别(默认为M)和ECI模式(默认为自动检测)。
//[...] QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload ) ; //[...]
或者,如果要覆盖有效载荷生成器设置的ECC级别,则可以使用允许设置ECC级别的过载方法。
//[...] QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload , QRCodeGenerator . ECCLevel . Q ) ; //[...]
您可以在我们的Wiki中了解有关有效载荷发生器的更多信息。
PAYLOADGENERATOR支持以下类型的有效载荷:
- bezahlcode
- 像比特币一样的加密货币(比特币,比特币现金,莱特币)付款地址
- 书签
- 日历事件(iCal/vevent)
- ContactData(Mecard/Vcard)
- 地理位置
- Girocode
- 邮件
- MMS
- Monero地址/付款
- 一次性通信
- Phonenumber
- RussiaPaymentorder(56042-2014)
- Shadowsocks配置
- Skype电话
- Slovenianupnqr
- 短信
- Swissqrcode(ISO-20022)
- URL
- WhatsAppMessage
- 无线上网
(1)取决于目标框架.NET库system.drawing.common and system.text.encoding.codepages将用作软件包依赖项。
