システム描画オブジェクトからバーコードを読み取る方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

によって ハイリル ハシミ ビン オマル

System.Drawing オブジェクトは、画像処理に関連するタスクにおいて .NET 開発者によって広く使用されています。 しかし、MicrosoftはSystem.Drawingのサポートの中止他のオペレーティングシステム、例えば MacOSLinux ではサポートされなくなり、今では専ら Windows をサポートしています。 この重要な変更は、Windows以外のオペレーティングシステムでIronBarcodeを使用している開発者にとって多くの問題を引き起こしました。 これは、バーコードを扱う際に通常、グラフィック画像、およびフォントのようなオブジェクトを使用するためです。

この問題に対処するために、私たちは代替の解決策を導入しました。IronDrawing. この無料オープンソースのライブラリは、IronSoftwareによって開始され、プロセスを簡素化することを目的としています。オペレーティングシステムで動作させるWindows以外。 これは我々のユーザーに対して使いやすい体験を提供します。 NuGetからIronBarcodeをインストールすると、IronDrawingが自動的にプロジェクトに含まれます。

 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package BarCode
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

 用 C# NuGet ライブラリ

でインストール NuGet

Install-Package BarCode
または
Java PDF JAR(ジャバPDF JAR)

ダウンロード DLL (ディーエルエル)

DLLをダウンロード

プロジェクトに手動でインストールする

今日からプロジェクトでIronPDFを使い始めましょう。無料のトライアルをお試しください。

最初のステップ:
green arrow pointer

チェックアウト IronBarcode オン Nuget 迅速なインストールと展開のために。8百万以上のダウンロード数により、をC#で変革しています。

 用 C# NuGet ライブラリ nuget.org/packages/BarCode/
Install-Package BarCode

インストールを検討してください IronBarcode DLL 直接。ダウンロードして、プロジェクトまたはGACの形式で手動でインストールしてください。 IronBarCode.zip

プロジェクトに手動でインストールする

DLLをダウンロード

System.DrawingをAnyBitmapにキャスト

System.Drawingからバーコードを読み取るには、オブジェクトをAnyBitmapにキャストするだけです。IronDrawingは使いやすさを念頭に置いて設計されました。 その結果、IronDrawingはSystem.Drawingの画像オブジェクトをIronSoftware.Drawingの画像オブジェクトであるAnyBitmapに暗黙的にキャストすることをサポートします。

System.Drawingオブジェクトに加えて、他のタイプのオブジェクトからのキャストもサポートしています。対象オブジェクトには以下が含まれます:

  • System.Drawing.Bitmap
  • System.Drawing.Image(システムドローイングイメージ)
  • SkiaSharp.SKBitmap(スキアシャープ.SKBitmap)
  • SkiaSharp.SKImage (スキアシャープ.SKイメージ)
  • SixLabors.ImageSharp(シックスレイバーズ・イメージシャープ)

    ユーザーは以下を参照できますコード例上記のオブジェクトをキャストするために。 以下は、System.Drawing オブジェクトから IronSoftware.Drawing.AnyBitmap にバーコード画像をキャストする方法を示したコードスニペットです。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-cast-to-anybitmap.cs
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);
Imports IronSoftware.Drawing
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

' Instantiate System.Drawing.Bitmap
Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")

' Cast from System.Drawing.Bitmap to AnyBitmap
Private barcode1 As AnyBitmap = bitmapFromBitmap

barcodes.Add(barcode1)

' Instantiate System.Drawing.Bitmap
Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")

' Cast from System.Drawing.Image to AnyBitmap
Dim barcode2 As AnyBitmap = bitmapFromFile

barcodes.Add(barcode2)
VB   C#

上記のコードスニペットでは、2つのバーコード画像を System.Drawing.Bitmap および System.Drawing.Image として読み込みました。 それから、AnyBitmap オブジェクトに単に割り当てることによって、それらを暗黙的に AnyBitmap にキャストします。 その後、これらのオブジェクトをAnyBitmapリストに追加しました。

任意のビットマップからバーコードを読み取る

IronBarcodeは、追加の設定を必要とせずにすべてのメソッドでIronSoftware.Drawing.AnyBitmapオブジェクトを簡単に受け入れることができます。 このことは、Windows以外のオペレーティングシステムではサポートされていない System.Drawing オブジェクトと共に IronBarcode を使用する開発者に対して、使いやすさを提供します。 以下のコードスニペットはその方法を示しています。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-system-drawing-read-anybitmap.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

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

System.Drawing.Bitmap bitmapFromBitmap = new System.Drawing.Bitmap("test1.jpg");
AnyBitmap barcode1 = bitmapFromBitmap;
barcodes.Add(barcode1);

System.Drawing.Image bitmapFromFile = System.Drawing.Image.FromFile("test2.png");
AnyBitmap barcode2 = bitmapFromFile;
barcodes.Add(barcode2);

foreach (var barcode in barcodes)
{
    // Read the barcode
    var results = BarcodeReader.Read(barcode);
    foreach (var result in results)
    {
        // Output the detected barcode value
        Console.WriteLine(result.Value);
    }
}
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic

Private barcodes As New List(Of AnyBitmap)()

Private bitmapFromBitmap As New System.Drawing.Bitmap("test1.jpg")
Private barcode1 As AnyBitmap = bitmapFromBitmap
barcodes.Add(barcode1)

Dim bitmapFromFile As System.Drawing.Image = System.Drawing.Image.FromFile("test2.png")
Dim barcode2 As AnyBitmap = bitmapFromFile
barcodes.Add(barcode2)

For Each barcode In barcodes
	' Read the barcode
	Dim results = BarcodeReader.Read(barcode)
	For Each result In results
		' Output the detected barcode value
		Console.WriteLine(result.Value)
	Next result
Next barcode
VB   C#

上記のコードスニペットは、前回のコードを拡張したものです。 AnyBitmap リストを作成した後、リストを反復処理し、各 AnyBitmap オブジェクトをパラメータとして Read メソッドを呼び出しました。その結果として IronBarcode.BarcodeResults が返されました。 次に、返されたオブジェクトを反復処理して、バーコードの値をコンソールに出力しました。

IronSoftware.Drawingの機能の領域は画像のキャスティングに限定されていません。 また、バーコードやQRコードのスタイリングに役立つフォントなど、他の画像処理の側面でも広く使用されています。 ユーザーは、IronDrawingをどのように利用するかを探索できますQRコードにロゴを追加してカスタマイズする.

ハイリル ハシミ ビン オマル

ソフトウェアエンジニア

すべての優れたエンジニアと同じように、Hairilは熱心な学習者です。C#、Python、およびJavaの知識を洗練させ、その知識を活かしてIron Softwareのチームメンバーに価値を提供しています。Hairilはマレーシアのマラ工科大学(Universiti Teknologi MARA)で化学およびプロセス工学の学士号を取得し、Iron Softwareチームに加わりました。