Keterbukaan penuh: Kami adalah pasukan perhubungan pembangun di Iron Software, syarikat di sebalik IronQR, salah satu pustaka dalam perbandingan ini. Itu dikatakan, kami percaya penilaian jujur memberi perkhidmatan yang lebih baik kepada semua orang berbanding pemasaran. Kami akan menunjukkan metodologi kami, mengakui bias kami, dan membiarkan kod bercakap sendiri. Kami menjalankan setiap pustaka kod QR C# melalui kriteria penilaian yang sama: penjanaan QR mudah, pembacaan QR daripada imej, kedalaman penyesuaian, sokongan rentas platform, dan kos pelesenan. Di bawah ialah hasil, perbandingan 11 pustaka kod QR yang ketara dalam ekosistem .NET, yang direka untuk membantu anda memilih yang betul untuk projek anda pada kali pertama. Berikut ialah cara tiga baris penjanaan QR kelihatan dengan dalam Visual Studio, salah satu pustaka yang akan kami liputi: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Output Kod QR Contoh IronQR Kesederhanaan itu adalah perkara biasa. Soalan sebenar ialah apa yang berlaku apabila anda perlu kod QR yang rosak daripada pengimbas gudang, menanam logo berjenama, menyasarkan bekas Linux, atau memproses beribu-ribu kod dalam tugas kelompok. Di situlah pustaka berbeza, dan di situlah perbandingan ini mendapat nilainya. membaca Ringkasan: Jadual Perbandingan Utama Sebelum kita mendalami, inilah gambaran keseluruhan. Jadual ini menangkap dimensi yang paling penting apabila memilih pustaka QR untuk projek .NET. Pustaka Jana Baca Logo/Gaya QR Mikro Rentap Platform Lesen Muat Turun NuGet IronQR ✅ ✅ Berkuasa ML ✅ Penuh ✅ + RMQR ✅ Win/Mac/Linux/Mudah Alih Komersial ($749+) ~56K QRCoder ✅ ❌ ✅ Sederhana ✅ ⚠️ Separa (System.Drawing) MIT (Percuma) ~68M ZXing.Net ✅ ✅ ❌ Minimal ❌ ⚠️ Melalui ikatan Apache 2.0 (Percuma) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Percuma) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Bentuk tersuai ❌ ✅ MIT (Percuma) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komersial ($999+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Sederhana ❌ ✅ (kawalan UI) Komersial (komuniti percuma) ~2M+ Spire.Barcode ✅ ✅ ✅ benam logo ❌ ⚠️ (System.Drawing) Komersial ($599+) ~450K IronBarcode ✅ ✅ ✅ ✅ QR Mikro ✅ Win/Mac/Linux Komersial ($749+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Prestasi tinggi N/A ✅ ✅ Komersial ($1,249+/thn) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Percuma) ~4.5M Jadual 1: Perbandingan utama 11 pustaka kod QR .NET merentasi kriteria pemilihan utama. Kiraan muat turun adalah anggaran pada awal 2026. Bahagian selebihnya artikel ini menguraikan setiap baris, dengan kod, pertukaran, dan penilaian jujur. Bagaimana Kami Menilai Pustaka Ini? Kami menilai setiap pustaka berdasarkan tujuh kriteria, diberi pemberat mengikut kekerapan ia mendorong keputusan pemilihan dunia sebenar: — Boleh ia mencipta kod QR daripada rentetan, URL dan data berstruktur (vCard, kelayakan Wi-Fi)? Penjanaan QR — Boleh ia menyahkod kod QR daripada imej, imbasan atau PDF? Bagaimana ia mengendalikan kod yang rosak atau diputar? Pembacaan QR — Penanaman logo, kawalan warna, penggayaan bentuk modul, konfigurasi pembetulan ralat Penyesuaian — QR Standard, QR Mikro, RMQR (QR Mikro Segiempat) Sokongan Format QR — Adakah ia berjalan dengan bersih pada Windows, Linux, macOS dan di dalam bekas Docker tanpa hack System.Drawing? Rentap Platform — Sumber terbuka vs. komersial, penetapan harga setiap pembangun, diskaun pakej Pelieasan & Kos — Kualiti rujukan API, ketersediaan tutorial, saiz komuniti, penyelenggaraan aktif Dokumentasi & Ekosistem Semua contoh kod menyasarkan dan menggunakan pernyataan peringkat teratas. Di mana .NET 10 memperkenalkan penambahbaikan yang relevan, kami menunjukkannya. .NET 8 (LTS) Pustaka QR Mana yang Perlu Anda Pilih? Rangka Kerja Keputusan Abaikan 11 profil pustaka di bawah jika anda sudah mengetahui kekangan anda. Inilah laluan pantas: → atau . Kedua-duanya berlesen MIT. QRCoder mempunyai lebih banyak pemapar dan pembantu muatan; Net.Codecrete lebih ringan dan mengelakkan System.Drawing sepenuhnya. "Saya perlu menjana kod QR secara percuma tanpa kebergantungan." QRCoder Net.Codecrete.QrCodeGenerator → (pembacaan berkuasa ML, ketepatan terbaik pada kod yang rosak), (percuma, terbukti), atau (pakej perusahaan, mahal). "Saya perlu menjana DAN membaca kod QR." IronQR ZXing.Net Aspose.BarCode → , , atau . Ketiga-tiganya mengelakkan kebergantungan System.Drawing yang merosakkan penempatan rentas platform. "Saya sedang melakukan penempatan ke bekas Linux/Docker dan tidak boleh menggunakan System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → mendahului dalam penanda aras penjanaan mentah. Untuk prestasi pembacaan, direka khas untuk pengimbasan throughput tinggi. "Prestasi dan jejak memori adalah kritikal." SkiaSharp.QrCode Dynamsoft Barcode Reader → Gunakan apa yang anda ada. Menambah pustaka QR vendor lain apabila pakej anda sudah memilikinya jarang masuk akal dari segi pelesenan atau penyelenggaraan. "Saya sudah menggunakan pakej Aspose/Syncfusion/Iron Software." → mempunyai panduan penyepaduan MAUI dan Blazor yang eksplisit. Microsoft MVP Jeff Fritz menggunakan IronQR dengan Blazor, contoh dunia sebenar corak tepat ini. "Saya sedang membina aplikasi mudah alih Blazor/MAUI dengan pengimbasan QR." IronQR membina aplikasi kad perniagaan kod QR 11 Pustaka Kod QR .NET Dibandingkan 1. IronQR — Pembacaan dan Penjanaan QR Berkuasa ML dengan Sokongan Rentas Platform IronQR ialah pustaka kod QR khusus Iron Software, berasingan daripada produk IronBarcode mereka yang lebih luas. Ciri utamanya ialah model pembelajaran mesin ( ) yang mengesan dan membaca kod QR daripada imej yang tidak sempurna, diputar, sebahagiannya terhalang, atau difoto pada sudut ganjil, selalunya dalam hanya beberapa baris kod. berasaskan ONNX Ia juga mampu mencipta objek kod QR dengan mudah, dengan sokongan untuk menggayakan kod QR dengan imej, menambah warna tersuai, dan menyimpan imej QR anda ke format output yang berbeza. Penjanaan: using IronQr; using IronSoftware.Drawing; // Jana kod QR bergaya dengan logo var options = new QrOptions(QrErrorCorrectionLevel.High, 20); QrCode qr = QrWriter.Write("https://example.com", options); var style = new QrStyleOptions { Dimensions = 300, Margins = 10, Color = new Color("#2E75B6"), Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("logo.png"), Width = 80, Height = 80 } }; AnyBitmap styledQr = qr.Save(style); styledQr.SaveAs("branded-qr.png"); Output QR Dijana IronQR Pembacaan: using IronQr; using IronSoftware.Drawing; var reader = new QrReader(); var input = new QrImageInput(AnyBitmap.FromFile("scanned-qr.jpg")); IEnumerable<QrResult> results = reader.Read(input); foreach (var result in results) Console.WriteLine($"Nilai: {result.Value}"); Output Bacaan IronQR Model ML adalah apa yang membezakan IronQR daripada setiap pustaka lain dalam senarai ini. Dalam ujian kami, ia berjaya menyahkod kod QR daripada foto lencana persidangan dan tangkapan skrin telefon bersudut di mana ZXing.Net dan pembaca imej asas tidak mengembalikan apa-apa. Pertukaran adalah saiz pakej, model ONNX menambah berat. Jika anda tidak memerlukan pembacaan, IronQR.Slim dihantar tanpa model ML dan jauh lebih ringan. Kekuatan: Pembacaan berkuasa ML mengendalikan kod QR yang rosak, diputar, dan sebahagiannya terhalang dan mengutamakan ketepatan Menyokong format Kod QR, QR Mikro, dan RMQR (QR Mikro Segiempat) API penggayaan penuh: warna, logo, modul bulat, margin Rentap platform: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Sokongan pembacaan asinkron (ReadAsync) untuk beban kerja pelayan Simpan ke berbilang format seperti imej PNG, JPG, TIFF berbilang muka surat, dan banyak lagi API mesra pengguna memudahkan penggunaan Batasan: Lesen komersial diperlukan ($749+ setiap pembangun untuk penempatan) Pakej penuh lebih berat daripada alternatif sumber terbuka kerana model ML lebih rendah daripada pilihan sumber terbuka yang matang, produk yang lebih baru (dilancarkan ~2023) Kiraan muat turun NuGet Projek hanya penjanaan mungkin tidak memerlukan lebihan ML Projek yang memerlukan kedua-dua penjanaan dan pembacaan, terutamanya di mana keadaan imbasan tidak sempurna (aplikasi mudah alih, pengimbasan gudang, senario persidangan/acara). menunjukkan IronQR mengendalikan penjanaan QR masa nyata dengan Blazor dan penjenamaan tersuai. Terbaik untuk: Kajian kes kad perniagaan QR Jeff Fritz 2. — Penjana QR Sumber Terbuka Paling Popular QRCoder Pustaka QRCoder ialah pakej kod QR paling banyak dimuat turun di NuGet, dengan . Pada asalnya dicipta oleh Raffael Herrmann pada 2013 dan kini , ia ialah pelaksanaan C# tulen yang tertumpu secara eksklusif pada kod QR (bukan pembacaan). lebih 68 juta muat turun diselenggara oleh Shane32 penjanaan using QRCoder; // Jana kod QR dan simpan sebagai bait PNG using var qrGenerator = new QRCodeGenerator(); using var qrCodeData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.H); using var pngQrCode = new PngByteQRCode(qrCodeData); byte[] qrCodeImage = pngQrCode.GetGraphic(20); File.WriteAllBytes("qrcoder-output.png", qrCodeImage); Imej Output QRCoder QRCoder menyediakan berbilang pemapar: PngByteQRCode (rentap platform, tiada kebergantungan System.Drawing), QRCode (berasaskan System.Drawing, hanya Windows), SvgQRCode, AsciiQRCode, dan banyak lagi. Ia juga termasuk penjana muatan untuk data berstruktur seperti kelayakan Wi-Fi, vCard, dan penanda buku, yang menjimatkan anda daripada memformat rentetan tersebut secara manual. Kekuatan: Lesen MIT, percuma sepenuhnya untuk kegunaan komersial 68M+ muat turun NuGet, penggunaan komuniti yang besar dan kestabilan terbukti Pilihan pemapar berbilang termasuk PngByteQRCode yang mengelakkan System.Drawing Penjana muatan terbina dalam (Wi-Fi, vCard, geolokasi, acara kalendar) Sokongan kod QR mikro Sifar kebergantungan pada sasaran .NET Standard Batasan: , tidak boleh membaca atau menyahkod fail imej kod QR Hanya penjanaan Sesetengah pemapar (seperti QRCode) bergantung pada System.Drawing.Common, yang hanya Windows sejak .NET 6 Tiada penanaman logo terbina dalam (anda perlu menggabungkan imej itu sendiri) Tiada penggayaan lanjutan (bentuk modul, gradien) Projek yang hanya memerlukan penjanaan QR, terutamanya apabila bajet adalah sifar. Jika anda perlu menjana kod QR Wi-Fi atau vCard dan tidak perlu membaca kod sama sekali, QRCoder ialah pilihan lalai yang pragmatik untuk kebanyakan pembangun .NET. Terbaik untuk: 3. — Pisau Tentera Swiss Pustaka Kod Bar ZXing.Net ("Zebra Crossing") ialah kepada pustaka ZXing Java asal. Ia ialah pustaka kod bar tujuan umum yang menyokong lebih 15 format, Kod QR, Data Matrix, Aztec, PDF 417, UPC, EAN, Kod 128, dan banyak lagi. Sokongan QR ialah subset daripada keupayaannya yang lebih luas. ZXing.Net port .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Jana kod QR var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // Membaca kod QR memerlukan pakej ikatan (cth. ZXing.Net.Bindings.SkiaSharp) Output ZXing.Net ZXing.Net memerlukan pakej ikatan khusus platform untuk pemaparan dan pembacaan. Pakej teras menyediakan logik pengekodan/penyahkodan; anda menambah ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp, atau ZXing.Net.Bindings.ImageSharp bergantung pada platform sasaran anda. Pendekatan modular ini adalah fleksibel tetapi menambah kerumitan penyepaduan. Kekuatan: Lesen Apache 2.0, percuma untuk kegunaan komersial Penjanaan dan pembacaan dalam satu pustaka Menyokong 15+ format kod bar selain kod QR , terbukti, pengetahuan komuniti yang luas 32M+ muat turun NuGet Ikatan tersedia untuk SkiaSharp, ImageSharp, OpenCV, dan banyak lagi Batasan: Ciri khusus QR adalah asas, tiada penanaman logo, tiada penggayaan lanjutan Ketepatan pembacaan pada kod QR yang rosak/diputar adalah sederhana berbanding dengan penyelesaian berkuasa ML Pakej ikatan menambah kerumitan pengurusan kebergantungan Reka bentuk API menunjukkan usianya, kurang lancar berbanding pustaka .NET moden Jeda penyelenggaraan aktif telah perlahan (diselenggara oleh komuniti) Projek yang memerlukan sokongan kod QR dan kod bar tradisional (peruncitan, logistik) dan mahukan pilihan percuma yang terbukti. Jika keutamaan anda ialah ciri khusus QR seperti penggayaan atau pembacaan berkuasa ML berbanding liputan format kod bar yang luas, pustaka khusus akan memberi anda perkhidmatan yang lebih baik. Terbaik untuk: 4. Net.Codecrete.QrCodeGenerator — Ringan dan Berfokus Standard Net.Codecrete.QrCodeGenerator ialah pustaka penjanaan kod QR yang bersih dan minimal oleh Manuel Bleichenbacher. Ia ialah , yang tertumpu pada ketepatan dan pematuhan standard ( ). terjemahan .NET penjana kod QR Nayuki Project di Java ISO/IEC 18004 using Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); Contoh Output dengan Net.Codecrete.QrCodeGenerator Dengan , ia diterima baik untuk pustaka yang tertumpu. Kualiti utamanya ialah sifar kebergantungan pada System.Drawing — ia menjana SVG, data laluan XAML, PNG dan BMP secara asli. Ini menjadikannya pilihan yang sangat baik untuk projek .NET rentas platform dan perkhidmatan ASP.NET Core yang berjalan dalam Docker. ~4.1 juta muat turun NuGet Kekuatan: Lesen MIT, percuma sepenuhnya Sifar kebergantungan System.Drawing, benar-benar rentas platform Jejak kecil, penjanaan pantas Output SVG dan XAML terbina dalam (berguna untuk senario WPF, WinUI dan web) Pelaksanaan yang betul bagi kesemua 40 versi QR dan semua 4 tahap pembetulan ralat Projek contoh yang meluas (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Batasan: , tiada keupayaan pembacaan QR Hanya penjanaan Tiada penanaman logo atau ciri penggayaan lanjutan Penyesuaian terhad berbanding penjana muatan QRCoder Lebih sedikit kandungan komuniti dan tutorial berbanding QRCoder atau ZXing.Net Pembangun yang memerlukan penjana QR yang kecil, betul, rentas platform dengan output SVG dan tanpa bagasi System.Drawing. Jika sasaran penempatan anda ialah Linux atau Docker dan anda hanya memerlukan penjanaan, pustaka ini patut dipertimbangkan dengan serius. Terbaik untuk: 5. SkiaSharp.QrCode — Penjanaan Rentas Platform Berprestasi Tinggi SkiaSharp.QrCode oleh ialah pustaka penjanaan QR yang berfokuskan prestasi dibina di atas SkiaSharp. Ia dicipta khusus untuk mengelakkan had GDI+ System.Drawing sambil memberikan prestasi peringkat asli melalui pecutan perkakasan SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // Satu baris: jana dan simpan QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Atau dengan tetapan tersuai var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Output Satu Baris SkiaSharp.QrCode Keputusan penanda aras daripada repositori projek menunjukkan SkiaSharp.QrCode mengatasi QRCoder dan pustaka QR .NET lain dalam kelajuan dan peruntukan memori untuk tugas penjanaan. Ia mencapai pemaparan sifar salinan terus ke kanvas SkiaSharp, mengelakkan peruntukan buffer sementara. Kekuatan: Lesen MIT, percuma untuk kegunaan komersial Prestasi penjanaan terbaik dalam kelasnya (ditanda aras) Peruntukan memori minimum, tekanan GC rendah untuk senario throughput tinggi Sedia NativeAOT (sokongan penyusunan .NET Native AOT) Bentuk modul tersuai (bulatan, segi empat tepat bulat) untuk kod QR bergaya Berfungsi pada Windows, Linux, macOS, iOS, Android, WebAssembly Batasan: , tiada pembacaan QR Hanya penjanaan Memerlukan kebergantungan asli SkiaSharp (pakej NuGet khusus platform) Komuniti yang lebih kecil daripada QRCoder atau ZXing.Net Tiada penjana muatan (Wi-Fi, vCard), anda memformat rentetan tersebut sendiri UTF-8 sahaja, tiada pengekodan ISO-8859-2 atau Shift JIS Aplikasi pelayan throughput tinggi yang menjana kod QR pada skala (cth., sistem tiket, penjanaan label pukal) di mana prestasi dan kecekapan memori paling penting. Juga sesuai jika anda sudah menggunakan SkiaSharp dalam projek anda. Terbaik untuk: 6. Aspose.BarCode — Pakej Kod Bar Gred Perusahaan untuk Menjana Kod QR ialah pustaka komersial yang komprehensif yang menyokong lebih 80 simbologi kod bar termasuk Kod QR, QR Mikro, Data Matrix, PDF417, dan semua format 1D biasa. Ia adalah sebahagian daripada ekosistem Aspose yang lebih luas yang digunakan oleh perusahaan untuk pemprosesan dokumen. Aspose.BarCode untuk .NET using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // Jana var generator = new BarcodeGenerator(EncodeTypes.QR, "https://example.com"); generator.Parameters.Barcode.XDimension.Pixels = 4; generator.Save("aspose-qr.png", BarCodeImageFormat.Png); // Baca using var reader = new BarCodeReader("aspose-qr.png", DecodeType.QR); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"Jenis: {result.CodeTypeName}, Teks: {result.CodeText}"); Output QR Aspose.BarCode