{"id":22239264,"url":"https://github.com/oscoreio/qrcodes","last_synced_at":"2025-09-15T09:14:23.388Z","repository":{"id":225624697,"uuid":"742396215","full_name":"oscoreio/QrCodes","owner":"oscoreio","description":"Cross-platform QR code generation based on SkiaSharp and QRCoder with logo support","archived":false,"fork":false,"pushed_at":"2025-05-05T20:04:59.000Z","size":549,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T06:35:46.852Z","etag":null,"topics":["cross-platform","csharp","dotnet","dotnet8","imagesharp","logo","net8","qr","qrcode","qrcoder"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oscoreio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-01-12T11:36:07.000Z","updated_at":"2025-06-14T22:50:08.000Z","dependencies_parsed_at":"2024-03-18T21:10:04.008Z","dependency_job_id":"ede648ec-309e-4fd7-8ab0-75488a7af4bc","html_url":"https://github.com/oscoreio/QrCodes","commit_stats":null,"previous_names":["oscoreio/qrcodes"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/oscoreio/QrCodes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscoreio%2FQrCodes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscoreio%2FQrCodes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscoreio%2FQrCodes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscoreio%2FQrCodes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscoreio","download_url":"https://codeload.github.com/oscoreio/QrCodes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscoreio%2FQrCodes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266438044,"owners_count":23928366,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cross-platform","csharp","dotnet","dotnet8","imagesharp","logo","net8","qr","qrcode","qrcoder"],"created_at":"2024-12-03T03:18:30.670Z","updated_at":"2025-07-27T23:32:06.810Z","avatar_url":"https://github.com/oscoreio.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QrCodes\n\n[![Nuget package](https://img.shields.io/nuget/vpre/Oscore.QrCodes.Maui)](https://www.nuget.org/packages/Oscore.QrCodes.Maui/)\n[![CI/CD](https://github.com/oscoreio/QrCodes/actions/workflows/dotnet.yml/badge.svg?branch=main)](https://github.com/oscoreio/QrCodes/actions/workflows/dotnet.yml)\n[![License: MIT](https://img.shields.io/github/license/oscoreio/QrCodes)](https://github.com/oscoreio/QrCodes/blob/main/LICENSE)\n\nModern and efficient cross-platform QR code generation, rendering and serialization.  \n![qr](assets/qr.png)\n\n### 🔥 Features 🔥\n- Use SkiaSharp/ImageSharp instead of System.Drawing to be cross-platform.\n- Support latest dotnet versions.\n- Supports trimming/NativeAOT.\n- Generate QR code with logo image.\n- Allows many different styles.\n- Supports many predefined payloads:\n  - BezahlCode\n  - Bitcoin like address\n  - Bookmark\n  - CalendarEvent\n  - ContactData\n  - Geolocation\n  - Girocode\n  - Mail\n  - MMS\n  - MoneroTransaction\n  - OneTimePassword\n  - PhoneNumber\n  - ShadowSocksConfig\n  - SkypeCall\n  - SloveniaUpnQR\n  - SMS\n  - SwissQRCode\n  - Url\n  - WhatsAppMessage\n  - Telegram\n  - Wi-Fi\n- Supports next renderers\n  - Ascii\n  - Base64\n  - SVG\n  - PostScript\n  - PDF\n  - FastPngRenderer - fast but not support all features\n  - Bitmap(.bmp) - fast but not support all features\n  - ImageSharp - powerful, allows many features and export formats\n  - SkiaSharp - powerful, allows many features and export formats\n  - System.Drawing - legacy, only windows, not support all features\n- Supports helpers for MAUI\n  - QrCodeSource - ImageSource to produce QR code\n  - QrCodeExtension markup extension - Simplifies usage of QrCodeSource\n\n### Usage\n```\n// Base library with all payloads and some renderers(Ascii, Base64, Pdf, FastBitmap, FastPng, SVG, PostScript)\ndotnet add package Oscore.QrCodes\n\n// SkiaSharpRenderer(Gif, Jpeg, Png, WebP, Bmp, Ico, Wbmp, Pkm, Ktx, Astc, Dng, Heif, Avif)\ndotnet add package Oscore.QrCodes.SkiaSharp\n// ImageSharpRenderer(Gif, Jpeg, Png, WebP, Bmp, Pbm, Tga, Tiff)\ndotnet add package Oscore.QrCodes.ImageSharp\n// SystemDrawingRenderer(Gif, Jpeg, Png, Bmp, Tiff)\ndotnet add package Oscore.QrCodes.System.Drawing\n\n// MAUI helpers(QrCodeSource and QrCodeExtension markup extension). Uses SkiaSharpRenderer.\ndotnet add package Oscore.QrCodes.Maui\n```\n\n#### Generate QR code\n```csharp\nvar qrCode = QrCodeGenerator.Generate(\n    plainText: new Mail(email: \"hello@oscore.io\").ToString(),\n    eccLevel: ErrorCorrectionLevel.High);\nusing var pngBytes = SkiaSharpRenderer.RenderToBytes(\n    data,\n    settings: new RendererSettings\n    {\n        DarkColor = Color.Red,\n    });\n```\n\n#### Generate ImageSource for MAUI\nYou can test all variants using [QrCodes.SampleApp MAUI app](sample)\n```\nxmlns:qr=\"clr-namespace:QrCodes.Maui;assembly=QrCodes.Maui\"\n```\n```xml\n\u003cImage Source=\"{qr:QrCode 'https://oscore.io/'}\" /\u003e\n```\n\n### Links\n- https://github.com/SixLabors/ImageSharp\n- https://github.com/codebude/QRCoder\n- https://github.com/JPlenert/QRCoder-ImageSharp\n- https://dev.to/vhugogarcia/generate-qr-code-in-net-maui-3c8n\n- https://qrapi.io/\n- https://github.com/manuelbl/QrCodeGenerator\n- https://qr.io/\n- https://github.com/guitarrapc/SkiaSharp.QrCode\n\n### Benchmarks\nYou can view the reports for each version [here](benchmarks)\n\n\u003c!--BENCHMARKS_START--\u003e\n```\n\nBenchmarkDotNet v0.13.12, macOS Sonoma 14.2.1 (23C71) [Darwin 23.2.0]\nApple M1 Pro, 1 CPU, 10 logical and 10 physical cores\n.NET SDK 8.0.100\n  [Host]     : .NET 8.0.0 (8.0.23.53103), Arm64 RyuJIT AdvSIMD\n  DefaultJob : .NET 8.0.0 (8.0.23.53103), Arm64 RyuJIT AdvSIMD\n\nCategories=Renderers  \n\n```\n| Method                  | Mean        | Ratio | Gen0     | Gen1     | Gen2    | Allocated | Alloc Ratio |\n|------------------------ |------------:|------:|---------:|---------:|--------:|----------:|------------:|\n| SkiaSharpRenderer_Png   | 1,065.14 μs |  1.00 |        - |        - |       - |   1.52 KB |        1.00 |\n| SkiaSharpRenderer_Jpeg  |   331.18 μs |  0.31 |   1.9531 |        - |       - |  13.23 KB |        8.72 |\n| SkiaSharpRenderer_Bmp   |          NA |     ? |       NA |       NA |      NA |        NA |           ? |\n| ImageSharpRenderer_Png  |   417.70 μs |  0.40 |   1.9531 |   0.4883 |       - |   48.1 KB |       31.71 |\n| ImageSharpRenderer_Jpeg |   297.34 μs |  0.28 |   9.7656 |   1.4648 |  0.4883 |  57.02 KB |       37.60 |\n| ImageSharpRenderer_Bmp  |    67.90 μs |  0.06 |  79.2236 |  44.5557 | 43.3350 | 363.08 KB |      239.40 |\n| FastPngRenderer_        |    43.58 μs |  0.04 |   0.8545 |        - |       - |   5.39 KB |        3.56 |\n| BitmapRenderer_         |   519.42 μs |  0.49 | 219.7266 | 219.7266 | 36.1328 | 368.75 KB |      243.15 |\n| SvgRenderer_            |    41.03 μs |  0.04 |   8.9111 |        - |       - |  54.95 KB |       36.23 |\n\nBenchmarks with issues:\n  Benchmarks.SkiaSharpRenderer_Bmp: DefaultJob\n\n\u003c!--BENCHMARKS_END--\u003e\n\n### Legal information and credits\n\nIt was forked from the [QRCoder-ImageSharp](https://github.com/JPlenert/QRCoder-ImageSharp) project.  \nQRCoder is a project by [Raffael Herrmann](https://raffaelherrmann.de) and was first released in 10/2013.  \nQRCoder-ImageSharp is a project by [Joerg Plenert](https://plenert.net).  \nIt's licensed under the [MIT license](https://github.com/JPlenert/QRCoder.ImageSharp/blob/master/license.txt).\n\n### Disclaimer\nAlthough the library includes many things, \nwe only use and support QrCodes/SkiaSharp/Maui functionality.  \nBut we will be happy to accept your PR regarding ImageSharp/SystemDrawing/WPF/other renderers.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscoreio%2Fqrcodes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscoreio%2Fqrcodes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscoreio%2Fqrcodes/lists"}