{"id":13430628,"url":"https://github.com/codebude/QRCoder","last_synced_at":"2025-03-16T06:30:46.518Z","repository":{"id":11164335,"uuid":"13537369","full_name":"codebude/QRCoder","owner":"codebude","description":"A pure C# Open Source QR Code implementation","archived":false,"fork":false,"pushed_at":"2024-05-22T20:34:45.000Z","size":1327,"stargazers_count":4317,"open_issues_count":36,"forks_count":1069,"subscribers_count":167,"default_branch":"master","last_synced_at":"2024-05-22T21:30:52.228Z","etag":null,"topics":["barcode","c-sharp","csharp","girocode","qrcode","qrcode-generator","qrcoder-generator","swissqrcode"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codebude.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["codebude"],"patreon":"raffael_herrmann","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://paypal.me/raffaelherrmann"]}},"created_at":"2013-10-13T10:21:54.000Z","updated_at":"2024-06-30T11:40:09.103Z","dependencies_parsed_at":"2024-01-02T22:44:56.686Z","dependency_job_id":"0f8275a2-5f62-4819-9b05-6d9ce7e431c1","html_url":"https://github.com/codebude/QRCoder","commit_stats":{"total_commits":501,"total_committers":50,"mean_commits":10.02,"dds":0.283433133732535,"last_synced_commit":"cecf2066d3f3a74b142aaa7c8d9f744c4673118c"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codebude%2FQRCoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codebude%2FQRCoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codebude%2FQRCoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codebude%2FQRCoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codebude","download_url":"https://codeload.github.com/codebude/QRCoder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221656317,"owners_count":16858741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["barcode","c-sharp","csharp","girocode","qrcode","qrcode-generator","qrcoder-generator","swissqrcode"],"created_at":"2024-07-31T02:00:55.850Z","updated_at":"2024-10-27T09:30:27.165Z","avatar_url":"https://github.com/codebude.png","language":"C#","readme":"# QRCoder\n\n|Build|Code coverage|Build status|NuGet Package|\n|-----|-------------|------------|-------------|\n|Latest / Stable|[![codecov](https://codecov.io/gh/codebude/QRCoder/branch/master/graph/badge.svg?token=3yNs88KD8S)](https://codecov.io/gh/codebude/QRCoder)|[![Build, test, pack, push (Release)](https://github.com/codebude/QRCoder/actions/workflows/wf-build-release.yml/badge.svg?branch=master)](https://github.com/codebude/QRCoder/actions/workflows/wf-build-release.yml)|[![NuGet Badge](https://buildstats.info/nuget/QRCoder?rnd=0892982314)](https://www.nuget.org/packages/QRCoder/)|\n|CI / Last commit|[![codecov](https://codecov.io/gh/codebude/QRCoder/branch/master/graph/badge.svg?token=3yNs88KD8S)](https://codecov.io/gh/codebude/QRCoder)|[![Build, test, pack, push (CI)](https://github.com/codebude/QRCoder/actions/workflows/wf-build-release-ci.yml/badge.svg)](https://github.com/codebude/QRCoder/actions/workflows/wf-build-release-ci.yml)|[![Github packages](https://img.shields.io/badge/Github-Packages-blue)](https://github.com/codebude/qrcoder/packages)|\n\n\n## Info\n\nQRCoder is a simple library, written in C#.NET, which enables you to create QR codes. It hasn't any dependencies to external libraries\u003csup\u003e1\u003c/sup\u003e, is available as package on NuGet and supports .NET Framework, .NET Core, .NET Standard and .NET. A full list of supported target frameworks can be [found here](https://www.nuget.org/packages/QRCoder/#supportedframeworks-body-tab).\n\nFeel free to grab-up/fork the project and make it better!\n\nFor more information see:\n[**QRCode Wiki**](https://github.com/codebude/QRCoder/wiki) | [Creator's blog (english)](http://en.code-bude.net/2013/10/17/qrcoder-an-open-source-qr-code-generator-implementation-in-csharp/) | [Creator's blog (german)](http://code-bude.net/2013/10/17/qrcoder-eine-open-source-qr-code-implementierung-in-csharp/)\n\n### Release Notes\nThe release notes for the current and all past releases can be read here: [📄 Release Notes](https://github.com/codebude/QRCoder/wiki/Release-notes)\n\n## Legal information and credits\n\nQRCoder is a project by [Raffael Herrmann](https://raffaelherrmann.de) and was first released in 10/2013. It's licensed under the [MIT license](https://github.com/codebude/QRCoder/blob/master/LICENSE.txt).\n\n\n* * *\n\n\n## Installation\n\nEither checkout this Github repository or install QRCoder via NuGet Package Manager. If you want to use NuGet just search for \"QRCoder\" or run the following command in the NuGet Package Manager console:\n```bash\nPM\u003e Install-Package QRCoder\n```\n\n#### CI builds\nThe NuGet feed contains only **major/stable** releases. If you want the latest functions and features, you can use the CI builds [via Github packages](https://github.com/codebude/qrcoder/packages).\n_(More information on how to use Github Packages in Nuget Package Manager can be [found here](https://samlearnsazure.blog/2021/08/08/consuming-a-nuget-package-from-github-packages/).)_\n\n\n## Usage\n\nYou only need a couple lines of code, to generate your first QR code.\n\n```csharp\nusing (QRCodeGenerator qrGenerator = new QRCodeGenerator())\nusing (QRCodeData qrCodeData = qrGenerator.CreateQrCode(\"The text which should be encoded.\", QRCodeGenerator.ECCLevel.Q))\nusing (PngByteQRCode qrCode = new PngByteQRCode(qrCodeData))\n{\n    byte[] qrCodeImage = qrCode.GetGraphic(20);\n}\n```\n\nThere are a plenty of other options. So feel free to read more on that in our wiki: [Wiki: How to use QRCoder](https://github.com/codebude/QRCoder/wiki/How-to-use-QRCoder)\n\n### Special rendering types\n\nBesides the normal PngByteQRCode-class (which is shown in the example above) for creating QR codes in Bitmap format, there are some more QR code rendering classes, each for another special purpose.\n\n* [QRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#21-qrcode-renderer-in-detail)\n* [ArtQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#211-artqrcode-renderer-in-detail)\n* [AsciiQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#22-asciiqrcode-renderer-in-detail)\n* [Base64QRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#23-base64qrcode-renderer-in-detail)\n* [BitmapByteQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#24-bitmapbyteqrcode-renderer-in-detail)\n* [PdfByteQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#210-pdfbyteqrcode-renderer-in-detail)\n* [PngByteQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#25-pngbyteqrcode-renderer-in-detail)\n* [PostscriptQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#29-postscriptqrcode-renderer-in-detail)\n* [SvgQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#26-svgqrcode-renderer-in-detail)\n* [UnityQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#27-unityqrcode-renderer-in-detail) (_via [QRCoder.Unity](https://www.nuget.org/packages/QRCoder.Unity)_)\n* [XamlQRCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#28-xamlqrcode-renderer-in-detail) (_via [QRCoder.Xaml](https://www.nuget.org/packages/QRCoder.Xaml)_)\n\n*Note: Please be aware that not all renderers are available on all target frameworks. Please check the [compatibility table](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers#2-overview-of-the-different-renderers) in our wiki, to see if a specific renderer is available on your favourite target framework.*  \n\n\n\nFor more information about the different rendering types click on one of the types in the list above or have a look at: [Wiki: Advanced usage - QR-Code renderers](https://github.com/codebude/QRCoder/wiki/Advanced-usage---QR-Code-renderers)\n\n## PayloadGenerator.cs - Generate QR code payloads\n\nTechnically QR code is just a visual representation of a text/string. Nevertheless most QR code readers can read \"special\" QR codes which trigger different actions.\n\nFor example: WiFi-QRcodes which, when scanned by smartphone, let the smartphone join an access point automatically.\n\nThis \"special\" QR codes are generated by using special structured payload string, when generating the QR code. The [PayloadGenerator.cs class](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators) helps you to generate this payload strings. To generate a WiFi payload for example, you need just this one line of code:\n\n```csharp\nPayloadGenerator.WiFi wifiPayload = new PayloadGenerator.WiFi(\"MyWiFi-SSID\", \"MyWiFi-Pass\", PayloadGenerator.WiFi.Authentication.WPA);\n```\n\nTo generate a QR code from this payload, just call the \"ToString()\"-method and pass it to the QRCoder.\n\n```csharp\n//[...]\nQRCodeData qrCodeData = qrGenerator.CreateQrCode(wifiPayload.ToString(), QRCodeGenerator.ECCLevel.Q);\n//[...]\n```\n\nYou can also use overloaded method that accepts Payload as parameter. Payload generator can have QR Code Version set (default is auto set), ECC Level (default is M) and ECI mode (default is automatic detection).\n\n```csharp\n//[...]\nQRCodeData qrCodeData = qrGenerator.CreateQrCode(wifiPayload);\n//[...]\n```\n\nOr if you want to override ECC Level set by Payload generator, you can use overloaded method, that allows setting ECC Level.\n\n```csharp\n//[...]\nQRCodeData qrCodeData = qrGenerator.CreateQrCode(wifiPayload, QRCodeGenerator.ECCLevel.Q);\n//[...]\n```\n\n\nYou can learn more about the payload generator [in our Wiki](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators).\n\nThe PayloadGenerator supports the following types of payloads:\n\n* [BezahlCode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#31-bezahlcode)\n* [Bitcoin-Like cryptocurrency (Bitcoin, Bitcoin Cash, Litecoin) payment address](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#32-bitcoin-like-crypto-currency-payment-address)\n* [Bookmark](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#33-bookmark)\n* [Calendar events (iCal/vEvent)](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#34-calendar-events-icalvevent)\n* [ContactData (MeCard/vCard)](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#35-contactdata-mecardvcard)\n* [Geolocation](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#36-geolocation)\n* [Girocode](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#37-girocode)\n* [Mail](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#38-mail)\n* [MMS](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#39-mms)\n* [Monero address/payment](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#310-monero-addresspayment)\n* [One-Time-Password](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#311-one-time-password)\n* [Phonenumber](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#312-phonenumber)\n* [RussiaPaymentOrder (ГОСТ Р 56042-2014)](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#313-russiapaymentorder)\n* [Shadowsocks configuration](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#314-shadowsocks-configuration)\n* [Skype call](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#315-skype-call)\n* [SlovenianUpnQr](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#316-slovenianupnqr)\n* [SMS](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#317-sms)\n* [SwissQrCode (ISO-20022)](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#318-swissqrcode-iso-20022)\n* [URL](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#319-url)\n* [WhatsAppMessage](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#320-whatsappmessage)\n* [WiFi](https://github.com/codebude/QRCoder/wiki/Advanced-usage---Payload-generators#321-wifi)\n\n***\n\u003csup\u003e(1)\u003c/sup\u003e *Depending on the targeted framework the .NET libraries System.Drawing.Common and System.Text.Encoding.CodePages will used as package dependencies.*","funding_links":["https://github.com/sponsors/codebude","https://patreon.com/raffael_herrmann","https://paypal.me/raffaelherrmann"],"categories":["Frameworks, Libraries and Tools","csharp","C#","C# #","C\\#","框架, 库和工具","Libraries","Graphics"],"sub_categories":["Graphics","图片","C\\#"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodebude%2FQRCoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodebude%2FQRCoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodebude%2FQRCoder/lists"}