-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Release Notes
Shane Krueger edited this page Oct 10, 2025
·
69 revisions
Please refer to https://github.com/Shane32/QRCoder/releases for release notes
| Released on | Status | Link |
|---|---|---|
| 2024-06-30 | Live |
Nuget |
- [Enhancement] Huge performance (runtime and memory) optimization in
QrCodeGenerator(PRs #509, #519, #520, #521, #524, #530, #532) - [Enhancement] Big performance (runtime and memory) optimization in
BitmapByteQRCode(PR #566) - [Enhancement] Added ECC level mismatch detection when using payloads from payload generator (PR #526)
- [Enhancement] Implementation of encoding constraints (EccLevel, EciMode) in SwissQRCode and GiroCode payloads to enforce that the payloads comply with the specifications of the respective standards (PR #533)
- [Enhancement] Added support for trimming (
IsTrimmableproject property) (PR #539) - [Enhancement] Added XML comments (code documentation) to all public members (PR #561)
- [Enhancement] Added new/third overload to
PngByteQRCodethat accepts colors as System.Drawing.Color (PR #564) - [Enhancement] Updated the Bitmap header from BITMAPCOREHEADER to BITMAPINFOHEADER in
BitmapByteQRCode(PR #565) - [Refactoring] Restructured
QRCodeGeneratorclasses into separate files and partially restructured code for better manageability (PRs #516, #528, #531) - [Refactoring] Restructured
PayloadGeneratorclasses into separate files for better manageability (PR #556) - [Refactoring] Restructured the
PayloadGeneratorTestsinto separate files for better manageability (PR #569) - [Refactoring] Removed category attribute from tests as it is no longer used/useful (PR #568)
- [Refactoring] Improved code documentation by adding comments to generator methods (PR #517)
- [Refactoring] Refactored and cleaned up the (needed for backwards compatibility) Stream- and String extension methods (PR #534)
- [Refactoring] Added nullable reference type (NRT) metadata to all possible members (PR #559)
- [Refactoring] Removed not longer necessary framework overrides in project files (PR #560)
- [Refactoring] Reformatted code and added
dotnet formattoolchain (PR #562) - [Note] Added performance benchmark project to ensure that future enhancement don't affect performance negatively (PRs #508, #510)
- If the function
GenerateQrCode(payload, eccLevel)is called and the payload has set an ECC level "X" that differs from the ECC level from the parametereccLevel, the QRCoder now throws anArgumentOutOfRangeExceptionto prevent the contract violation in the context of the payload. (Previously, the EccLevel was taken fromeccLevelparameter without further checking, which in the worst case could lead to unreadable payloads.)
-
class
QRCoder.Extensions.CustomExtensions -
class
QRCoder.Extensions.StringValueAttribute
Special thanks for PRs and support goes to: @Shane32, @gfoidl, @csturm83, @Apflkuacha
| Released on | Status | Link |
|---|---|---|
| 2024-04-27 | Live |
Nuget |
- [Bugfix] The
SupportedOSPlatformAttributeattributes were missing in the 1.5.0 build. Fixed build steps in workflows. (PRs #504, #505) - [Note] Added automated API approval tests to ensure that all changes to the public APIs are deliberate and documented (PR #504)
Special thanks for PRs and support goes to: @Shane32 and the GraphQL for .NET project.
| Released on | Status | Link |
|---|---|---|
| 2024-04-26 | Live |
Nuget |
- [Enhancement] Added support for explicit WPA2 in
PayloadGenerator.Wifi(PR #494) - [Enhancement] Added Linux support for
PostscriptQRCode(PR #493) - [Enhancement] Added Linux support under .NET5 (or greater) for
SvgQRCodeincl. logo handling (PRs #490, #491) - [Enhancement] Improved README.MD and the examples in it (PRs #456, #481)
- [Enhancement] Optimized performance of
GenerateQrCode-function for payloads of typebyte[](PR #438) - [Enhancement] Added another overload of
GetGraphic()to theASCIIQrCode-renderer that allows to render smaller representations of the QR code graphic by pressing two rows of modules into one char (PR #384 with inspiration from #430) - [Enhancement] Added support for UTC DateTimes and DateTimeOffsets in
CalenderEvent-payload generator (PR #499) - [Enhancement] Added support for non-Windows platforms on .NET6+ (or newer) in
Base64QRCode(PR #495) - [Update] Updated the allowed character set for contacts/addresses in
PayloadGenerator.SwissQRCode(PR #432) - [Update] Updated the valid country code list by
XKfor contacts/addresses inPayloadGenerator.SwissQRCode(PR #497) - [Bugfix] Changed linebreak behaviour after
StrdBkgInf-field inPayloadGenerator.SwissQRCodeas it is additional instead of optional since SwissQRCode standard version 2.2 (PR #411) - [Bugfix] Fixed bug in placement of finder patterns in
ArtQrCode-renderer that occured when quietzones should be drawn and a customfinderPatternImagewas set at the same time (PR #474) - [Bugfix] Fixed use of
pixelSizeFactorinArtQrCode-renderer, which had no effect before (PR #408) - [Bugfix]
PayloadGenerator.Urldidn't handle upper-case input correctly (PR #447) - [Bugfix] Fixed bug in
ASCIIQRCoderenderer that lead to mirrored/false rendering of ASCII QR codes (PR #476) - [Bugfix] Added missing url encoding of the issuer field in
OneTimePasswordpayload generator (PR #391) - [Bugfix] Fixed 300 byte limit validator in PaymentOrder payload generator. Now only mandatory fields will be inspected. (PR #498)
- [Bugfix] Fixed bug that lead to wrongly placed logo backgrounds when rendering a SvgQRCode with logo and disabled quietzones at the same time. (PR #502)
Special thanks for PRs and support goes to: @Shane32, @MarkusG, @PolnerA, @Timwi, @josh-, @doggy8088, @mharen,