フッターコンテンツにスキップ
IRONQRの使用

QR コード.NET Core: C# で QR コードを読み取り、生成する

.NET Core上で Web アプリケーションやEnterpriseアプリケーションを構築する場合、在庫管理、決済フロー、二要素認証などの目的で QR コードのサポートが必要になることはよくあります。 低レベルのエンコードアルゴリズムに開発サイクルを費やす代わりに、ワークフロー全体を処理する専用ライブラリを利用できます。 IronQRは、 .NET向けの包括的なQRコードソリューションを提供し、基本的な生成から機械学習を活用した読み取り、高度なエラー訂正まで、あらゆる機能を網羅しています。

ご自身で試してみませんか? 今すぐ無料トライアルを開始して、プロジェクトにQRコード機能をどれだけ迅速に追加できるかをご確認ください。

NuGet 購入の準備ができていませんか?

PM >  Install-Package IronQR

IronQRNuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 また、DLLをダウンロードできます。

QRコードライブラリはどのようにインストールするのですか?

NuGet経由でIronQRをインストールするのは数秒で済みます。 Visual Studio を開き、 [ツール] > [NuGetパッケージ マネージャー] > [ソリューションのNuGetパッケージの管理]に移動し、IronQR を検索して、 [インストール] をクリックします。 このパッケージは依存関係が最小限で、Windows、macOS、Linuxをすぐに利用できる。

Install-Package IronQR

IronQRは、 .NET Core 6、7、8、9、10、および.NET Framework 4.6.2以降を対象としています。 クロスプラットフォームプロジェクトの場合、SkiaSharpとの統合により、Windows以外のランタイム環境での画像処理が処理されます。 このライブラリは、追加のランタイム設定なしで、 ASP.NET Core Webアプリケーション、コンソールアプリケーション、およびデスクトップソリューションで動作します。 インストールが完了すると、必要な拡張機能のメソッドと種類はすべてすぐに利用可能になります。

画像から基本的なQRコードを読み取るにはどうすればよいですか?

画像ファイルからQRコードデータを読み取るには、わずか数行のコードで済みます。 QrReader クラスは、高度な機械学習モデルを使用して画像品質を評価し、適切なセグメントモードを自動的に選択するため、入力画像が理想的でない場合でも正確な結果が得られます。

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
    Console.WriteLine($"QR Code Value: {qrCode.Value}");
    Console.WriteLine($"URL: {qrCode.Url}");
}
using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
    Console.WriteLine($"QR Code Value: {qrCode.Value}");
    Console.WriteLine($"URL: {qrCode.Url}");
}
Imports IronQr
Imports IronSoftware.Drawing

' Load image containing QR code
Dim inputBmp = AnyBitmap.FromFile("qr-sample.png")
' Create QrImageInput from the bitmap
Dim imageInput As New QrImageInput(inputBmp)
' Initialize QR Reader with ML model
Dim reader As New QrReader()
' Read and decode all QR codes in the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Output decoded text strings
For Each qrCode In results
    Console.WriteLine($"QR Code Value: {qrCode.Value}")
    Console.WriteLine($"URL: {qrCode.Url}")
Next
$vbLabelText   $csharpLabel

入力QRコード

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像1 - 入力QRコード

出力

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像2 - QRコードスキャン出力例

QrReader.Read() メソッドは QrImageInput を処理し、IEnumerable<QrResult> を返します。各結果には、デコードされたテキスト、エンコードされている場合は URL、および画像内の QR シンボルの空間位置が含まれます。 このライブラリは、バイト配列、ファイルパス、およびAnyBitmapオブジェクトを受け入れるため、ディスク、データベース、ライブカメラフィードなど、あらゆるプロジェクトアーキテクチャに対して柔軟に対応できます。

IronQRを純粋なアルゴリズムライブラリと区別する特徴は、リーダーを支える機械学習モデルにある。 モーションブラー、部分的な遮蔽、不均一な照明といった現実世界の不完全性を、手動による前処理や閾値調整を必要とせずに処理します。

高度なQRコードデータを抽出するにはどうすればよいですか?

IronQRは、基本的な値のデコードに加えて、スキャンされた各シンボルから座標、生データセグメント、およびモジュールレベルの情報を公開します。 これは、QRコードがページ上のどこに表示されたかを正確に把握する必要がある文書処理ワークフローや、1つの画像内に複数のコードを処理する必要のあるアプリケーションにとって不可欠です。

using IronQr;
using IronSoftware.Drawing;

var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
    // Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}");
    // Get corner coordinate positions
    foreach (PointF point in qrCode.Points)
    {
        Console.WriteLine($"Position: {point.X}, {point.Y}");
    }
}
using IronQr;
using IronSoftware.Drawing;

var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
    // Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}");
    // Get corner coordinate positions
    foreach (PointF point in qrCode.Points)
    {
        Console.WriteLine($"Position: {point.X}, {point.Y}");
    }
}
Imports IronQr
Imports IronSoftware.Drawing

Dim inputBmp = AnyBitmap.FromFile("document-with-qr.png")
Dim imageInput As New QrImageInput(inputBmp)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

For Each qrCode In results
    ' Access decoded value
    Console.WriteLine($"Data: {qrCode.Value}")
    ' Get corner coordinate positions
    For Each point As PointF In qrCode.Points
        Console.WriteLine($"Position: {point.X}, {point.Y}")
    Next
Next
$vbLabelText   $csharpLabel

入力 QR

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像3 - QRコードを入力します

高度なQR読み取り結果

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像4 - 高度なQRデータ抽出の結果

QrResult.Points コレクションには、検出された QR シンボルの 4 つの角の座標がピクセル空間で格納されています。 アプリケーションはこれらを使用して、ドキュメント画像に境界ボックスを重ね合わせたり、QRコード領域を切り取って後続処理に使用したり、位置データを下流システムに渡して物理座標を論理的なドキュメント位置にマッピングしたりできます。

IronQR は、カスタム埋め込みロゴ、破損したモジュール、または低解像度入力を含むコードを同じ ML パイプラインで処理します。ライブラリは個別の前処理ステップを必要とせず、検出とデコードは単一の Read() 呼び出しで行われます。

エラー訂正レベルはQRコードの品質にどのように影響しますか?

エラー訂正とは、QRコードの一部が隠れていたり、印刷状態が悪かったり、物理的に損傷していたり​​する場合でも、QRコードスキャナーが元のデータを復元できるようにする仕組みです。 QRコード規格では、低(L)、中(M)、四分位(Q)、高(H)の4つのレベルが定義されており、それぞれストレージ容量と耐損傷性のトレードオフの関係にある。

レベル 復旧能力 最適な使用方法
L ~7% 鮮明なデジタル表示、最大データ密度
M ~15% 一般的な印刷用途
Q ~25% 工業用ラベル、適度な摩耗が予想されます
H ~30% ロゴが埋め込まれた屋外または摩耗の激しい表面

QRコードを生成する際、より高いエラー訂正レベルを指定することで、実際のスキャン条件下でも出力が確実に正しく表示されるようになります。

using IronQr;
using IronSoftware.Drawing;

// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像5 - 高いエラー訂正レベルで生成されたQRコード

QrOptions コンストラクタは、エラー訂正レベルと最大バージョン番号を受け取ります。 バージョン40のコードは最大7,089文字の数字を格納できますが、バージョン1のコードは41文字しか格納できません。最大バージョンを低く設定すると出力サイズが制限されるため、バッチ全体で一貫した物理的寸法が必要な場合に便利です。 エラー訂正レベルが高いほど、冗長性​​のために確保されるモジュールの数が増え、どのバージョンにおいても実質的なデータ容量が減少します。

IronQRの耐障害性機能は、この特性と密接に関連しています。より高い訂正レベルで生成されたコードを読み取る場合、このライブラリは、純粋なアルゴリズムデコーダでは完全に失敗するようなコードからデータを復元します。

国際文字を含むQRコードを生成するにはどうすればよいですか?

IronQRは、数値、英数字、バイト、漢字など、あらゆるQRコードエンコードモードをサポートしています。 日本語テキストやその他のUnicodeコンテンツについては、ライブラリが最もスペース効率の良いエンコーディングを自動的に選択します。

using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
' The library selects Kanji mode automatically
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
$vbLabelText   $csharpLabel

QRコード出力

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像6 - 出力QRコード

漢字エンコーディングでは、1モジュールあたり8ビットではなく2バイトが使用されるため、同じバージョンの日本語QRコードは、UTF-8バイトモードの同等のコードよりもはるかに多くの文字を格納できます。 URLの後に日本語のテキストが続くなど、混合コンテンツの場合、 IronQRは入力を分割し、各セグメントを最適なモードでエンコードします。 セグメント境界を指定したり、エンコーディングヘルパーを手動で呼び出したりする必要はありません。 エンコードパイプラインがこれを自動的に処理します。

この自動選択には、非標準の文字セットが使用されていることをスキャナに知らせる拡張チャネル解釈(ECI)マーカーも含まれます。 国際市場をターゲットとするアプリケーションは、個別の設定なしに、任意の Unicode 文字列を QrWriter.Write() に直接渡すことができます。

構造化QRデータにペイロードジェネレーターを使用するにはどうすればよいでしょうか?

単純なURLをエンコードしたQRコードは、簡単なリンク共有には適していますが、多くのアプリケーションでは、WiFi認証情報、 vCard形式の連絡先カード、イベントデータなどの構造化データをエンコードする必要があります。 これらのペイロードを手動でフォーマットすると、エラーが発生しやすくなります。 セミコロンの欠落やフィールド順序の誤りは、スキャナーがデータを誤って解釈する原因となります。

IronQRは、これらの構造化文字列を正しく構築するペイロードヘルパーを提供します。

using IronQr;
using IronSoftware.Drawing;

// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
using IronQr;
using IronSoftware.Drawing;

// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR code with URL payload
Dim urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
' Save QR as PNG image file
Dim qrImage As AnyBitmap = urlQrCode.Save()
qrImage.SaveAs("url-qr-code.png")
Console.WriteLine("QR code generated successfully.")
$vbLabelText   $csharpLabel

QRコードを作成しました

QRコードジェネレーター.NET Core:わずか数行のコードでQRコードを読み取り、生成します:画像7 - URLから作成されたQRコード

QrWriter.Write() メソッドは、プレーンな文字列または構造化されたペイロード オブジェクトのいずれかを受け入れます。 Wi-Fiネットワークの場合、ペイロードにはSSID、パスワード、セキュリティタイプがAndroidおよびiOSのスキャナーが認識できる形式でエンコードされます。連絡先情報については、出力はほとんどのモバイルQRリーダーで使用されているMeCard規格に準拠します。 生成機能のページには、サポートされているすべてのペイロードタイプとその必須フィールドが記載されています。

このライブラリは、設定可能なピクセルサイズで画像を出力します。 実運用においては、最低でも200×200ピクセルの解像度でコードを生成することで、一般的なスマートフォンの距離からでも確実にスキャンできるようになります。 より大きなサイズは、スキャン距離が1メートルを超える屋外用途や印刷用途に適しています。

QRコードの外観をカスタマイズするにはどうすればよいですか?

IronQRを使えば、スキャン性を損なうことなく、生成されるコードの視覚的な外観を自由に制御できます。 前景色と背景色を変更したり、独自のブランディングを適用したり、中央の静止領域にロゴを埋め込んだりすることができます。

using IronQr;
using IronSoftware.Drawing;

// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120);   // Deep navy foreground
var lightColor = Color.White;

var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
    BackgroundColor = lightColor,
    Color = darkColor,
    // Embed a logo image into the QR center
    Logo = AnyBitmap.FromFile("logo.png")
};

QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120);   // Deep navy foreground
var lightColor = Color.White;

var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
    BackgroundColor = lightColor,
    Color = darkColor,
    // Embed a logo image into the QR center
    Logo = AnyBitmap.FromFile("logo.png")
};

QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Define custom colors for the QR code
Dim darkColor As Color = Color.FromArgb(30, 30, 120) ' Deep navy foreground
Dim lightColor As Color = Color.White

Dim options As New QrOptions(QrErrorCorrectionLevel.High, maxVersion:=20) With {
    .BackgroundColor = lightColor,
    .Color = darkColor,
    ' Embed a logo image into the QR center
    .Logo = AnyBitmap.FromFile("logo.png")
}

Dim styledQr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim output As AnyBitmap = styledQr.Save()
output.SaveAs("branded-qr.png")
$vbLabelText   $csharpLabel

ロゴを埋め込むと有効データ領域が減少するため、ライブラリではロゴが提供される場合にエラー訂正レベルHを要求します。 中心部に確保された静穏区域は、コード表面積のおよそ30%を占めており、これはHレベルの復旧能力の範囲内である。 このライブラリは、この制約を自動的に適用します。ロゴとともに低いエラー訂正レベルを設定した場合、 IronQRは信頼性の低いスキャンコードを生成するのではなく、説明的なメッセージを含む例外を発生させます。

ASP.NET Coreアプリケーションの場合、 ASP.NET Core QR コードジェネレーターのチュートリアルでは、コントローラーアクションから生成された QR コードを画像レスポンスとして提供する方法を示しています。 出力ストリームは中間ファイルI/Oを介さずに直接レスポンスに書き込むため、トラフィック量の多いエンドポイントでもレイテンシを低く抑えることができます。

ASP.NET CoreアプリケーションでQRコードを読み取るにはどうすればよいですか?

アップロードされた画像、文書処理パイプライン、または自動検査システムからサーバー側でQRコードをスキャンすることは、読み取りAPIの一般的な使用例です。 ASP.NET QRコードスキャナのガイドでは、コントローラとサービスのセットアップ全体を網羅していますが、基本的な読み取りパターンはコンソールアプリケーションと同じです。

using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult Scan(IFormFile imageFile)
    {
        using var stream = imageFile.OpenReadStream();
        var bitmap = AnyBitmap.FromStream(stream);
        var imageInput = new QrImageInput(bitmap);
        var reader = new QrReader();
        var results = reader.Read(imageInput);

        var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
        return Ok(decoded);
    }
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
    [HttpPost("scan")]
    public IActionResult Scan(IFormFile imageFile)
    {
        using var stream = imageFile.OpenReadStream();
        var bitmap = AnyBitmap.FromStream(stream);
        var imageInput = new QrImageInput(bitmap);
        var reader = new QrReader();
        var results = reader.Read(imageInput);

        var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
        return Ok(decoded);
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("api/qr")>
Public Class QrScanController
    Inherits ControllerBase

    <HttpPost("scan")>
    Public Function Scan(imageFile As IFormFile) As IActionResult
        Using stream = imageFile.OpenReadStream()
            Dim bitmap = AnyBitmap.FromStream(stream)
            Dim imageInput = New QrImageInput(bitmap)
            Dim reader = New QrReader()
            Dim results = reader.Read(imageInput)

            Dim decoded = results.Select(Function(r) New With {Key .Value = r.Value, Key .Url = r.Url}).ToList()
            Return Ok(decoded)
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

AnyBitmap.FromStream() メソッドは読み取り可能なストリームであれば何でも受け入れるため、フォームからアップロードされたファイル、ブロブストレージから取得した画像、ビデオパイプラインから抽出されたフレームなど、いずれの場合にも同じコードパスが機能します。コントローラは一時ファイルをディスクに書き込まないため、ファイルシステムが読み取り専用となる可能性のあるコンテナ化されたデプロイメントでは特に重要です。

高スループットのシナリオでは、ML モデルのロードコストは最初の構築時に支払われるため、アプリケーションのライフサイクルごとに QrReader をシングルトンとして一度だけインスタンス化してください。 同じインスタンスに対する後続の Read() 呼び出しはスレッドセーフであり、ロードされたモデルを共有します。

.NET MAUIアプリケーションでQRコードを生成するにはどうすればよいですか?

.NET MAUI QRコードチュートリアルでは、iOS、Android、macOS、Windowsといった複数のプラットフォームにおけるQRコード生成の完全な手順を解説します。 IronQRは、Windows以外のプラットフォームで実行する場合、 SkiaSharpレンダリングバックエンドを使用するため、すべてのMAUIターゲットで一貫した出力が得られます。

using IronQr;
using IronSoftware.Drawing;

// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();

// Bind imageBytes to an <Image Source> in your MAUI page
using IronQr;
using IronSoftware.Drawing;

// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();

// Bind imageBytes to an <Image Source> in your MAUI page
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR and convert to a byte array for display in MAUI
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim bitmap As AnyBitmap = qr.Save()
Dim imageBytes As Byte() = bitmap.ExportBytes()

' Bind imageBytes to an <Image Source> in your MAUI page
$vbLabelText   $csharpLabel

モバイルターゲットでは、ExportBytes() は PNG バイト配列を返します。これは、StreamImageSource に直接渡すか、ImageButton に書き込むことができます。 MAUIのスキャフォールドはプラットフォーム固有のコードパスを必要としません。同じ生成ロジックが4つのMAUIターゲットすべてで同じように実行されます。

VB .NETプロジェクトの場合、API サーフェスは同じです。 構文だけが異なる。 このライブラリは単一のNuGetパッケージとして提供され、別途VB .NETアセンブリは必要ありません。

次のステップは何ですか?

IronQRは、基本的な生成や構造化されたペイロードのエンコードから、機械学習を活用した破損コードやブランドコードの読み取りまで、 .NET上でQRコードのライフサイクル全体を網羅しています。 このライブラリは漢字のエンコード、エラー訂正の設定、クロスプラットフォームの画像出力などを処理するため、ユーザーはアプリケーション固有のロジックに集中できます。

学んだことを実践に移すには:

よくある質問

IronQR はど for .NETバージョンをサポートしていますか?

IronQRは、 .NET Core 6、7、8、9、10、および.NET Framework 4.6.2以降をサポートしています。また、 .NET Standard 2.0以降もターゲットとしているため、Xamarin、 .NET MAUI、 Blazor、 ASP.NET Coreプロジェクトとの互換性があります。

C# で画像ファイルから QR コードを読み取るにはどうすればよいでしょうか?

`AnyBitmap.FromFile()` を使って画像を読み込み、`QrImageInput` に渡して `QrReader.Read()` を呼び出します。このメソッドは `IEnumerable` を返します。 ` 各結果には、デコードされた値、URL、コーナー座標が含まれます。

QR コードの 4 つのエラー訂正レベルとは何ですか?

4つのレベルは、低(L、回復率約7%)、中(M、回復率約15%)、四分位(Q、回復率約25%)、高(H、回復率約30%)です。レベルを上げると冗長モジュールが追加され、正味データ容量は減少しますが、破損または部分的に隠されたコードのスキャン信頼性が向上します。

IronQR はロゴが含まれている QR コードや部分的に破損している QR コードを読み取ることができますか?

はい。IronQRのMLベースの検出モデルは、部分的に破損したコード、埋め込まれたロゴ、モーションブラー、低解像度の入力を、手動による前処理を必要とせずに処理します。

IronQRを使用して QR コードにロゴを埋め込むにはどうすればよいでしょうか?

`QrOptions` オブジェクトの `Logo` プロパティをロゴ画像の `AnyBitmap` に設定し、エラー訂正レベルを「高」に設定します。中央に配置されたロゴはコード面積の約 30% を占めるため、 IronQR はこの制約を自動的に適用します。

IronQR は日本語やその他の Unicode 文字をサポートしていますか?

はい。任意の Unicode 文字列を `QrWriter.Write()` に渡すと、ライブラリは日本語文字の場合は漢字モード、その他の Unicode コンテンツの場合は ECI マーカー付きのバイトモードを自動的に選択します。

ASP.NET Coreアプリケーションで QR コードを生成するにはどうすればよいでしょうか?

アップロードされた画像を読み込むには `AnyBitmap.FromStream()` を使用し、コードを生成するには `QrWriter.Write()` を使用します。出力は MIME タイプが `image/png` の `FileContentResult` として返されます。ML モデルの読み込みコストを削減するため、`QrReader` をシングルトンとしてインスタンス化します。

IronQR はクロスプラットフォームですか?

はい。IronQRは、Windows 以外のプラットフォームで SkiaSharp レンダリング バックエンドを使用し、 .NET MAUIを通じて macOS、Linux、iOS、Android で一貫した QR 生成と読み取りを提供します。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね