IRONSOFTWAREHOME
KORZYSTANIE Z IRONQR

Jak zeskanować kod QR w ASP .NET

Curtis Chau
Curtis Chau
Updated: 21 kwietnia 2026

Kody QR stały się wszechobecne w naszym cyfrowym świecie, często używane w reklamie, sprzedaży detalicznej, zarządzaniu wydarzeniami i więcej. Dla deweloperów pracujących w frameworku ASP.NET, integracja możliwości skanowania kodów QR w aplikacjach internetowych może poprawić doświadczenia użytkowników i funkcjonalność. Ten artykuł zgłębia proces implementacji skanera kodów QR w aplikacji ASP.NET, obejmując wymagane narzędzia, biblioteki i krok po kroku implementację. Użyjemy IronQR, potężnej biblioteki do generowania kodów QR od Iron Software, do odczytywania kodów QR.

Jak Skanować Kod QR w ASP.NET

  1. Utwórz projekt ASP.NET przy użyciu Visual Studio.
  2. Zainstaluj bibliotekę IronQR z Menedżera Pakietów.
  3. Prześlij obraz QR i odczytaj QR.
  4. Odczytaj zaawansowany kod QR.

Zrozumienie kodów QR i ich zastosowań

Kody QR (Quick Response) to dwuwymiarowe kody kreskowe, które mogą przechowywać informacje od adresów URL po dane kontaktowe, zazwyczaj skanowane przy użyciu smartfonów lub dedykowanych urządzeń skanujących. W aplikacjach webowych kody QR mogą pełnić różne funkcje, takie jak:

  • Szybki dostęp do strony: Kierowanie użytkowników do określonego URL bez konieczności wpisywania.
  • Sprzedaż biletów na wydarzenia: Weryfikacja kodów QR na biletach w celu uzyskania dostępu do wydarzenia.
  • Systemy płatności: Ułatwienie płatności przez skanowanie kodu QR.
  • Informacje o produkcie: Dostarczanie dodatkowych informacji o produktach.

Przedstawiamy IronQR

IronQR to potężna biblioteka .NET zaprojektowana do generowania i skanowania kodów QR, zapewniająca solidne funkcje z myślą o łatwości użytkowania. Ta wszechstronna biblioteka nie tylko obsługuje kody QR, ale może również zarządzać innymi typami kodów kreskowych, czyniąc ją preferowanym wyborem dla deweloperów pracujących w ekosystemie .NET. W niniejszym poradniku zbadamy, jak zintegrować bibliotekę IronQR z aplikacją ASP.NET w celu ułatwienia skanowania kodów QR.

Kluczowe zalety i funkcje IronQR

  1. Odczytywanie kodów QR: IronQR potrafi odczytywać kody QR z różnych formatów graficznych, takich jak jpg, png, svg, bmp, gif, tif, tiff i inne. Obsługuje również obrazy wielostronicowe i niestandardowe modele wykrywania QR. Formaty danych wyjściowych obejmują tekst, URL, współrzędne i inne.

  2. Zapis kodów QR: Możesz generować kody QR i zapisywać je jako obrazy (jpg, png, gif, tiff, bmp), strumienie lub nawet nakładać na istniejące pliki PDF. Koduj dane takie jak tekst, URL, bajty, liczby i generuj kody QR. Dostosuj stylizację kodu QR poprzez zmianę rozmiaru, regulację marginesów, zmianę kolorów i dodawanie logo.

  3. Obsługa błędów i korekcja: IronQR zapewnia szczegółowe komunikaty o błędach i niestandardową korekcję błędów QR. Zapewnia odporność na błędy oraz obsługę kontroli null i sum kontrolnych.

  4. Zaawansowany model uczenia maszynowego: IronQR korzysta z zaawansowanego modelu uczenia maszynowego do rozpoznawania kodów QR. Model ten zapewnia dokładne i niezawodne odczytywanie kodów QR na różnych platformach, w tym mobilnych, desktopowych i w chmurze.

  5. Wieloplatformowość: IronQR jest dostosowany do C#, F# i VB.NET, działając na różnych wersjach .NET, takich jak .NET Core (8, 7, 6, 5 i 3.1+), .NET Standard (2.0+), .NET Framework (4.6.2+).

  6. Obsługuje różne typy projektów, w tym webowe (Blazor & WebForms), mobilne (Xamarin & MAUI), desktopowe (WPF & MAUI) i aplikacje konsolowe.

  7. Szerokie wsparcie dla kodów QR: IronQR doskonale radzi sobie z różnorodnymi kodami QR oraz innymi typami kodów kreskowych. Niezależnie od tego, czy masz do czynienia ze standardowymi kodami QR, Micro QR, obrazem kodu kreskowego QR, czy nawet specyficznymi formatami jak Aztec czy Data Matrix, IronQR pokrywa to wszystko. IronQR obsługuje również funkcję odczytywania kodów kreskowych QR.

IronQR z produktów API .NET, które obejmują różne narzędzia do dokumentów biurowych, edycji PDF, OCR i inne.

Krok 1: Utwórz nowy projekt ASP.NET używając Visual Studio

Zacznij od utworzenia nowego projektu i wyboru szablonu MVC, jak pokazano poniżej:

Jak skanować kod QR w ASP.NET: Rysunek 1 - Utwórz nowy projekt ASP.NET używając Visual Studio

Następnie należy podać nazwę projektu i lokalizację, gdzie projekt został zapisany.

Jak skanować kod QR w ASP.NET: Rysunek 2 - Podaj nazwę projektu oraz lokalizację, w której chcesz go zapisać.

Wybierz wersję .NET.

Jak skanować kod QR w ASP.NET: Rysunek 3 - Wybierz wersję .NET, której chcesz używać.

Kliknięcie przycisku 'Utwórz' stworzy następujący kod i projekt.

Jak skanować kod QR w ASP.NET: Rysunek 4 - Kliknij przycisk 'Utwórz', aby Visual Studio stworzył dla ciebie szablon projektu

Krok 2: Zainstaluj bibliotekę IronQR z Menedżera pakietów Visual Studio

Zainstaluj bibliotekę IronQR z menedżera pakietów Visual Studio, jak pokazano poniżej:

Jak skanować kod QR w ASP.NET: Rysunek 5 - Wyszukaj IronQR używając Menedżera Pakietów Visual Studio i zainstaluj go

IronQR można również zainstalować za pomocą Menedżera Pakietów NuGet.

Jak skanować kod QR w ASP.NET: Rysunek 6 - Wyszukaj IronQR poprzez Menedżera Pakietów NuGet

Krok 3: Prześlij obraz QR i odczytaj obraz QR

Teraz utwórzmy aplikację kodu QR.

Utwórz QRCodeModel

// Import necessary namespaces
using System.ComponentModel.DataAnnotations;

namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        // Property to hold the uploaded QR code image
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage { get; set; }
    }
}

Stwórz kontroler do kodu QR

Dodaj nowy kontroler, klikając prawym przyciskiem myszy na folder kontrolera i podaj nazwę, jak pokazano poniżej:

Jak skanować kod QR w ASP.NET: Rysunek 7 - Dodaj nowy kontroler klikając na folder i nadaj mu nazwę

Wybierz Pusty Kontroler.

Jak skanować kod QR w ASP.NET: Rysunek 8 - Wybierz opcję Pusty Kontroler w prompt

Podaj nazwę kontrolera.

Jak skanować kod QR w ASP.NET: Rysunek 9 - Nazwij kontroler

Teraz dodaj następujący kod do kontrolera.

// Import necessary namespaces
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace IronQRScannerAsp.Controllers
{
    // Controller to handle QR code scanning functionalities
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        // Constructor for dependency injection of the hosting environment
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        // Displays the initial View
        public IActionResult Index()
        {
            ViewBag.QrCodeText = "Text";
            return View();
        }

        // Handles the POST request to scan a QR code
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            // Define the file path for saving the uploaded QR image
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server
            }

            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);

            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);

            // Create a QR Reader object
            QrReader reader = new QrReader();

            // Read the Input and get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display scanned text and image on the view
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;

            return View();
        }
    }
}

Wyjaśnienie kodu

Podany fragment kodu dotyczy kontrolera ASP.NET Core MVC o nazwie QrCodeController, który został zaprojektowany do obsługi funkcji skanowania kodów QR za pomocą biblioteki IronQR. Oto krótki opis, co robi ten kod:

1. Zapisywanie przesłanego obrazu kodu QR

Tworzenie ścieżki

  • Buduje ścieżkę pliku w katalogu web root aplikacji specjalnie do zapisywania obrazów kodów QR (katalog 'ScanQRCode').
  • Sprawdza, czy ten katalog istnieje, a jeśli nie, tworzy go, aby uniknąć błędów braku pliku podczas zapisywania.

Zapisywanie pliku

  • Tworzy pełną ścieżkę do pliku (filePath), gdzie zostanie zapisany przesłany obraz kodu QR ("ScanQRCode/qrcode.png"). To nadpisuje istniejący plik o tej samej nazwie, skutecznie obsługując nowe skany bez gromadzenia plików.
  • Otwiera strumień pliku i kopiuje zawartość przesłanego obrazu (qrImage.QRCodeImage, prawdopodobnie plik formularza) do określonej lokalizacji na serwerze.

2. Dekodowanie kodu QR

Odczytywanie pliku obrazu

  • Wykorzystuje AnyBitmap.FromFile(filePath) do załadowania zapisanego pliku obrazu do formatu odpowiedniego do skanowania kodów QR. AnyBitmap prawdopodobnie służy jako klasa pomocnicza do konwertowania plików obrazów na obiekt bitmapy, który czytnik QR może przetworzyć.

Inicjalizacja czytnika QR

  • Opatula załadowaną bitmapę w QrImageInput, która została specjalnie zaprojektowana jako wejście do procesu odczytywania kodów QR.
  • Instancjonuje QrReader, komponent biblioteki IronQR skonfigurowany do wykrywania i dekodowania kodów QR.

Skanowanie kodu QR

  • Wywołuje reader.Read(imageInput) w celu przeskanowania obrazu pod kątem kodów QR. Ta metoda zwraca IEnumerable<QrResult>, gdzie każdy QrResult zawiera dane z wykrytego kodu QR w obrazie.
  • Wyodrębnia wartość pierwszego wyniku używając results.First().Value i zapisuje te zdekodowane informacje w ViewBag.QrCodeText. Zakłada się, że obraz zawiera przynajmniej jeden kod QR i nie obsługuje potencjalnych błędów, gdy nie wykryje żadnych kodów QR.

3. Przygotowywanie i zwracanie odpowiedzi

Tworzenie URL obrazu

  • Tworzy URL (imageUrl) wskazujący na zapisany obraz kodu QR na serwerze. URL jest tworzony przy użyciu schematu aktualnego żądania HTTP, hosta i podstawy ścieżki, co zapewnia jego dostępność dla użytkowników do oglądania.
  • Skonstruowany URL jest zapisywany w ViewBag.QrCodeUri.

Zwrot widoku

  • Zwraca ten sam widok (View()), który prawdopodobnie wyświetla zarówno obraz kodu QR, jak i zdekodowany tekst użytkownikowi. ViewBag jest używane do przekazywania zdekodowanego tekstu z kodu QR i URL obrazu do widoku do renderowania.

Dodaj widok do klasy kontrolera

Dodaj nowy widok, kliknij prawym przyciskiem myszy na metodę akcji CreateQRCode w klasie QrCodeController.

Jak skanować kod QR w ASP.NET: Rysunek 10 - Dodaj nowy widok w klasie QrCodeController

Wybierz opcję 'Dodaj Widok', a następnie wybierz 'Razor View'. Kliknij 'Dodaj'.

Jak skanować kod QR w ASP.NET: Rysunek 11 - Wybierz opcję Dodaj Widok, następnie widok Razor, a potem Dodaj

Następnie wybierz szablon "Utwórz" i wcześniej wygenerowaną klasę Model.

Jak skanować kod QR w ASP.NET: Rysunek 12 - Wybierz wcześniej wygenerowany szablon Utwórz

Teraz zastąp kod w klasie widoku tym, który pokazano poniżej.

@model IronQRScannerAsp.Models.QRCodeModel

@{
    ViewData["Title"] = "ScanQRCode";
}

<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label for="QRCodeImage">Select QR Image:</label>
                <input asp-for="QRCodeImage" class="form-control" type="file" />
            </div>
            <div class="form-group">
                <input type="submit" value="Upload" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
<div>
    <h3>Scanned Text:</h3>
    <h4>@ViewBag.QrCodeText</h4>
    @if (ViewBag.QrCodeUri != null)
    {
        <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
    }
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Text

Teraz w Program.cs zmień poniższy kod, aby widok powyżej był domyślną trasą:

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}");

Zmienia to domyślną trasę z HomeController na nasz Kontroler QrCode.

Wprowadź obraz z URL: https://ironsoftware.com/csharp/qr/.

Jak skanować kod QR w ASP.NET: Rysunek 13 - Przykładowe wejście kodu QR

Wynik

Jak skanować kod QR w ASP.NET: Rysunek 14 - Przykładowe wyjście po wykonaniu powyższych kroków

Na stronie wybierz obraz kodu QR i kliknij 'prześlij', aby zdekodować kod QR. Ta aplikacja może być również zmodyfikowana do odczytu z transmisji wideo i wyświetlania wyników.

Krok 4: Odczyt zaawansowanego kodu QR

Aby odczytać zaawansowane kody QR, IronQR oferuje następujące ustawienia.

// Import necessary namespaces
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;

// Load an image file as a bitmap
var inputBmp = AnyBitmap.FromFile("QrImage.png");

// Use Auto => Machine Learning Scan
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);

// Use Machine Learning Scan - High Speed
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);

// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);

Korzystając z najnowszej technologii ML, podnieśliśmy nasz czytnik kodów QR na nowe wyżyny. Wyrafinowany model ML poprawia dokładność i efektywność aplikacji w dekodowaniu kodów QR, nawet w złożonych warunkach. Niezależnie od tego, czy odczytujesz kody QR z nieruchomych obrazów, strumieni wideo, czy materiału z kamer na żywo, rozwiązanie oparte na ML dostarcza wymagane informacje szybko i niezawodnie. Ta innowacja usprawnia pozyskiwanie danych i zwiększa bezpieczeństwo przez identyfikację autentycznych kodów QR i oznaczanie potencjalnych zagrożeń. Dzięki naszej technologii ML możesz być pewien, że twoje możliwości skanowania kodu QR są na najwyższym poziomie, zapewniając użytkownikom płynne i bezpieczne doświadczenie.

Licencja (dostępna wersja próbna)

Deweloperzy mogą uzyskać licencję próbną IronQR z tutaj. Klucz musi być umieszczony w appSettings.json.

{
  "IronQr.License.LicenseKey": "My Key"
}
JSON

Wnioski

W tym artykule zbadaliśmy, jak skanować kody QR w ASP.NET Core przy użyciu IronQR. Integracja IronQR z aplikacją ASP.NET dla skanowania kodów QR jest prostym procesem, który zwiększa możliwości aplikacji webowych, czyniąc je bardziej interaktywnymi i przyjaznymi dla użytkownika. Mocne cechy IronQR oraz łatwość użytkowania czynią z niego doskonały wybór dla deweloperów chcących wdrożyć funkcjonalności związane z kodami kreskowymi.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta