IRONSOFTWAREHOME

How to Read Barcodes From System.Drawing in C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026年6月4日

IronBarcode は、System.Drawing オブジェクトからバーコードを読み取り、AnyBitmap に変換することで、すべてのオペレーティングシステムで Microsoft の System.Drawing サポートの Windows のみという制約を解決します。

はじめに

System.Drawing オブジェクトは、.NET で画像処理タスクによく使用されます。 しかし、Microsoft は、MacOS や Linux の System.Drawing サポートを終了し、現在は Windows のみサポートしています。 この変更により、非WindowsオペレーティングシステムでIronBarcodeを使用する開発者に問題が生じました。なぜなら、バーコードの作業には通常グラフィックス画像フォントが含まれるからです。

この問題に対処するため、IronDrawingを導入しました。 Iron Softwareにより作成されたこの無料かつオープンソースのライブラリは、クロスプラットフォームサポートを簡素化し、シームレスな体験を提供します。 NuGet から IronBarcode をインストールすると、IronDrawing がプロジェクトに自動的に含まれます。

バーコード読み取りが初めての開発者には、基本的な概念と基本的な使用パターンを網羅した包括的な Reading Barcodes Tutorial を参照してください。 さまざまな画像フォーマットで作業している場合は、画像から BarCode を読み取るガイドに、追加のコンテキストと例が記載されています。

クイックスタート: 一行で AnyBitmap を使用してバーコードを読み取る

このスニペットは、System.Drawing.Bitmap を作成し、IronDrawing がそれを AnyBitmap に暗黙的にキャストすることで IronBarcode がバーコードをどのように読み取るかを示します。 たった1行で、どのOSの開発者でも迅速に結果を得ることができます。

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2このコード スニペットをコピーして実行します。

    var results = IronBarCode.BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
    arrow pointer

System.Drawing オブジェクトを AnyBitmap にキャストするにはどうすればよいでしょうか?

System.Drawing からのバーコード読み取りには、オブジェクトを AnyBitmap にキャストする必要があります。 IronDrawing は使いやすさを重視して設計されており、System.Drawing からの画像オブジェクトを IronSoftware.Drawing という AnyBitmap 画像オブジェクトに暗黙的にキャストすることをサポートしています。

System.Drawing オブジェクト以外にも、他の型からのキャストをサポートしています:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SkiaSharp.SKImage
  • SixLabors.ImageSharp

上記のオブジェクトをキャストするには、このコード例を参照してください。 下記は、System.Drawing オブジェクトから IronSoftware.Drawing.AnyBitmap へのバーコード画像のキャストを示しています。

どの System.Drawing タイプがキャスト可能ですか?

using IronSoftware.Drawing;
using System.Collections.Generic;

List<AnyBitmap> barcodes = new List<AnyBitmap>();

// Instantiate System.Drawing.Bitmap
System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");

// Cast from System.Drawing.Bitmap to AnyBitmap
AnyBitmap barcode1 = bitmapFromBitmap;

barcodes.Add(barcode1);

// Instantiate System.Drawing.Bitmap
System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");

// Cast from System.Drawing.Image to AnyBitmap
AnyBitmap barcode2 = bitmapFromFile;

barcodes.Add(barcode2);

このコードは、System.Drawing オブジェクトと IronBarcode の間のIronDrawing を通じたシームレスな統合を示しています。 この互換性は、サポートされているバーコード形式ガイドに詳述されている、QRコード、Code 128、Code 39、その他多くのものを含む、さまざまなバーコード形式にわたって拡張されます。

なぜ暗黙的キャスティングは機能するのですか?

上記のコードでは、2つのバーコード画像を System.Drawing.BitmapSystem.Drawing.Image にロードしました。 次に、それらを AnyBitmap オブジェクトに割り当て暗黙的にAnyBitmap にキャストし、これらのオブジェクトを AnyBitmap リストに追加しました。

IronDrawing の暗黙的キャストメカニズムは、演算子のオーバーロードを使用し、System.Drawing 型と AnyBitmap の間の透過的な変換を提供します。 このデザインパターンにより、開発者は既存のコードを維持しながら、クロスプラットフォームの互換性を得ることができます。 変換では、解像度、色深度、ピクセルデータを含むすべての画像プロパティが保持され、品質が損なわれることはありません。

明示的キャストと暗黙的キャストはいつ使い分けるべきですか?

暗黙的なキャストは利便性を提供しますが、シナリオによっては明示的なキャストが望ましい場合もあります:

// Implicit casting - clean and simple for straightforward conversions
System.Drawing.Bitmap systemBitmap = new System.Drawing.Bitmap("barcode.png");
AnyBitmap anyBitmap = systemBitmap; // Implicit cast

// Explicit casting - useful when type clarity is important
System.Drawing.Image systemImage = System.Drawing.Image.FromFile("qrcode.jpg");
AnyBitmap explicitBitmap = (AnyBitmap)systemImage; // Explicit cast

// When working with nullable types or conditional logic
System.Drawing.Bitmap? nullableBitmap = GetBitmapFromSource();
if (nullableBitmap != null)
{
    AnyBitmap result = (AnyBitmap)nullableBitmap; // Explicit cast for clarity
    // Process the barcode
}

よくある鋳造エラーとは

System.DrawingAnyBitmap に変換する際、開発者は次のことに直面する可能性があります:

  1. ヌル参照例外:キャストする前に System.Drawing オブジェクトがヌルでないことを確認してください 2.サポートされていないフォーマットの例外: エキゾチックな画像フォーマットの中には、事前に変換が必要なものがあります。 3.メモリの問題:大きな画像は適切な処理パターンが必要

鋳造問題のトラブルシューティングについては、トラブルシューティング ガイドでバーコード認識時の一般的な問題の解決策を提供しています。

AnyBitmap オブジェクトからバーコードを読むにはどうすればよいですか?

IronBarcode は、追加の設定を必要とせずにすべてのメソッドで IronSoftware.Drawing.AnyBitmap オブジェクトを受け入れます。 これにより、非 Windows オペレーティングシステムで System.Drawing オブジェクトを使用する際の開発が簡略化されます。 次のコードはこれを示しています:

どのメソッドが AnyBitmap パラメーターを受け入れますか?

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

// Create a list of image file paths to read barcodes from
List<string> barcodeFiles = new List<string>
{
    "test1.jpg",
    "test2.png"
};

foreach (var barcodeFile in barcodeFiles)
{
    // Read the barcode from file path
    var results = BarcodeReader.Read(barcodeFile);
    foreach (var result in results)
    {
        // Output the detected barcode value
        Console.WriteLine(result.Value);
    }
}

基本的な Read メソッドに加えて、IronBarcode は AnyBitmap パラメーターを受け付けるいくつかの方法を提供します。 高度なシナリオについては、複数の BarCode を読み取るガイドで、1 つの画像内の複数のバーコードの効率的な処理を実演しています:

// Advanced barcode reading with options
var readerOptions = new BarcodeReaderOptions
{
    // Specify barcode types to search for
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Set confidence threshold
    ConfidenceThreshold = 0.95
};

// Read with specific options
var advancedResults = BarcodeReader.Read(anyBitmap, readerOptions);
C#

複数の BarCode 結果を処理するにはどうすればよいですか?

上のコードは、前の例を拡張したものです。 AnyBitmap リストを作成した後、それを反復して各 AnyBitmap オブジェクトに対して Read メソッドを呼び出しました。結果として IronBarCode.BarcodeResults が返されました。 次に、バーコードの値をコンソールに出力するために、結果を反復しました。

複数の BarCode を処理する場合は、並列処理を活用してパフォーマンスを向上させます:

// Parallel processing for multiple barcode images
var barcodeFiles = Directory.GetFiles("barcodes/", "*.png");
var allResults = new ConcurrentBag<BarcodeResult>();

Parallel.ForEach(barcodeFiles, file =>
{
    var bitmap = new System.Drawing.Bitmap(file);
    var anyBitmap = (AnyBitmap)bitmap;
    var results = BarcodeReader.Read(anyBitmap);
    
    foreach (var result in results)
    {
        allResults.Add(result);
    }
    
    bitmap.Dispose(); // Clean up resources
});

// Process all results
foreach (var result in allResults)
{
    Console.WriteLine($"Found {result.BarcodeType}: {result.Value}");
}

どの他の IronDrawing 機能を利用できますか?

IronSoftware.Drawing 機能は画像のキャストを超えて拡張されます。 バーコードやQRコードのスタイリングに役立つフォントのような画像処理の側面を扱います。 QRコードにカスタムロゴを追加する方法を含めて、IronDrawing をどのように活用するかをご覧ください。

IronDrawing は、バーコード処理を補完する強力な画像操作機能を提供します:

// Using IronDrawing for image preprocessing
using IronSoftware.Drawing;

// Load and preprocess an image before barcode reading
AnyBitmap preprocessedImage = AnyBitmap.FromFile("noisy-barcode.jpg");

// Apply image filters to improve barcode readability
preprocessedImage = preprocessedImage.ToGrayScale();
preprocessedImage = preprocessedImage.Contrast(1.5); // Increase contrast
preprocessedImage = preprocessedImage.Sharpen(); // Sharpen image

// Read the preprocessed barcode
var improvedResults = BarcodeReader.Read(preprocessedImage);

特定の画像補正が必要なシナリオについては、画像補正ガイドで、バーコードの可読性を高めるフィルタの使用方法について詳しく説明しています。

IronDrawingSystem.Drawing より選ぶ理由は?

IronDrawingSystem.Drawing に比べて説得力のある利点を提供します:

  1. クロスプラットフォームサポート:Windows、Linux、macOS でシームレスに動作 @System.Drawing (Windows のみ .NET Core/5+)
  2. モダンなアーキテクチャSkiaSharpImageSharp に基づいて構築されており、より良いパフォーマンスとメモリ管理を提供します
  3. 簡略化された API:親しみやすい System.Drawing-のようなインターフェースを保持しながら、最新の利便性を追加しています
  4. アクティブな開発:定期的な更新と改善があり、System.Drawing のメンテナンスモードとは異なります 5.より優れた統合:ソフトウェア製品との最適なパフォーマンスのために特別に設計されています。

デプロイに関する考慮事項、とりわけクラウド環境での考慮については、Azure へのデプロイおよび AWS へのデプロイ についてのガイドを参照してください。これには、IronDrawing を使用したクロスプラットフォーム互換性に関する具体的な注意事項が含まれています。

デスクトップアプリケーション、ウェブサービス、またはクラウドネイティブソリューションを構築する場合、IronDrawing はあなたのバーコード処理コードがすべてのプラットフォームでポータブルで効率的であることを保証し、現代の .NET 開発に最適な選択です。

よくある質問

Windows 以外のプラットフォームで System.Drawing オブジェクトから BarCode を読み取る方法を教えてください。

IronBarcodeはIronDrawingを通してSystem.Drawingオブジェクトからのクロスプラットフォームのバーコード読み取りを自動的に処理し、AnyBitmapフォーマットに変換します。これはSystem.DrawingがWindows専用であるというマイクロソフト社の制限を解決し、MacOSやLinuxシステムでシームレスにバーコードを読み取ることを可能にします。

IronDrawingとは何ですか?なぜバーコード読み取りと一緒に含まれているのですか?

IronDrawingはIron Softwareによって作成された無料のオープンソースライブラリで、グラフィックス操作をクロスプラットフォームでサポートします。NuGetからIronBarcodeをインストールすると自動的に含まれ、互換性のあるAnyBitmapフォーマットに変換することで、すべてのオペレーティングシステムでSystem.Drawingオブジェクトからのバーコード読み取りを可能にします。

System.Drawing.Bitmapからバーコードを読み取るための変換方法を教えてください。

AnyBitmapにキャストするだけで、System.Drawing.BitmapからBarCodeを読み取ることができます:var results = BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));`.IronBarcodeはIronDrawingの暗黙のキャスト機能によって自動的に変換を処理します。

LinuxやMacOSでSystem.Drawingを使ってBarCodeを読むことはできますか?

はい、IronBarcodeはIronDrawingを通してLinuxやMacOSのSystem.Drawingオブジェクトからバーコードの読み取りを可能にします。IronDrawingはSystem.DrawingオブジェクトをクロスプラットフォームのAnyBitmapフォーマットに自動的に変換します。これはMicrosoftのSystem.DrawingサポートのWindowsのみの制限を克服しています。

バーコードの読み取りには、どのようなタイプのSystem.Drawingオブジェクトを使用できますか?

IronBarcodeは、System.Drawing.Bitmapやその他の画像タイプを含む様々なSystem.Drawingオブジェクトからのバーコード読み取りをサポートしています。これらはIronDrawingの暗黙のキャスト機能によって自動的にAnyBitmapに変換され、クロスプラットフォームのバーコードスキャン機能を実現します。

System.DrawingからBarCodeを読み取る簡単な1行ソリューションはありますか?

はい、IronBarcodeは1行で解決できます: `var results = BarcodeReader.Read((AnyBitmap)(new System.Drawing.Bitmap("yourImage.png")));`.この一行でSystem.Drawing.Bitmapを作成し、IronDrawingを通してAnyBitmapにキャストし、画像に存在する全てのバーコードを読み取ります。

Is IronDrawing included when I install IronBarcode?

Yes, when you install IronBarcode from NuGet, IronDrawing is automatically included, ensuring seamless integration for cross-platform barcode scanning.

How do I handle multiple barcodes in a single image using IronBarcode?

Use the BarcodeReader.Read method with AnyBitmap, and leverage parallel processing to efficiently handle and read multiple barcodes in a single image.

What image processing features does IronDrawing provide?

IronDrawing can handle image processing tasks such as color adjustment and font handling, which are useful when styling barcodes and QR codes.

How does implicit casting help in cross-platform development?

Implicit casting in IronDrawing allows developers to convert System.Drawing objects to AnyBitmap without changing existing code, facilitating cross-platform compatibility and development for Linux, macOS, and Windows.

準備はできましたか?

Nuget Downloads 2,422,100バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronBarCode」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

  1. IronBarcodeをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍してください
  2. Visual Studioのソリューションエクスプローラーで、Referencesを右クリックします。 "IronBarcode.dll"を選択します

ライセンス料金は$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。