システム描画オブジェクトからバーコードを読み取る方法
System.Drawing オブジェクトは、画像処理に関連するタスクにおいて .NET 開発者によって広く使用されています。 しかし、MicrosoftはSystem.Drawingのサポートの中止他のオペレーティングシステム、例えば MacOS や Linux ではサポートされなくなり、今では専ら Windows をサポートしています。 この重要な変更は、Windows以外のオペレーティングシステムでIronBarcodeを使用している開発者にとって多くの問題を引き起こしました。 これは、バーコードを扱う際に通常、グラフィック、画像、およびフォントのようなオブジェクトを使用するためです。
この問題に対処するために、私たちは代替の解決策を導入しました。IronDrawing. この無料でオープンソースのライブラリは、IronSoftwareによって開始され、プロセスを簡素化することを目的としています。オペレーティングシステムで動作させるWindows以外。 これは我々のユーザーに対して使いやすい体験を提供します。 NuGetからIronBarcodeをインストールすると、IronDrawingが自動的にプロジェクトに含まれます。
IronBarcodeを始める
今日から無料トライアルでIronBarcodeをあなたのプロジェクトで使い始めましょう。
システム描画オブジェクトからバーコードを読み取る方法
- System.Drawingからバーコードを読み取るためのC#ライブラリをダウンロードする
- IronDrawingを利用して、System.DrawingオブジェクトをAnyBitmapにキャストする
- 以下を使用
読み取り
AnyBitmapオブジェクトからバーコードを読み取るメソッド - 検出されたバーコードの値をコンソールに表示する
- 別の記事を参照して、IronDrawing が色とフォントの処理にどのように使用されているかを学びましょう。
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)
上記のコードスニペットでは、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
上記のコードスニペットは、前回のコードを拡張したものです。 AnyBitmap リストを作成した後、リストを反復処理し、各 AnyBitmap オブジェクトをパラメータとして Read
メソッドを呼び出しました。その結果として IronBarcode.BarcodeResults が返されました。 次に、返されたオブジェクトを反復処理して、バーコードの値をコンソールに出力しました。
IronSoftware.Drawingの機能の領域は画像のキャスティングに限定されていません。 また、バーコードやQRコードのスタイリングに役立つ色やフォントなど、他の画像処理の側面でも広く使用されています。 ユーザーは、IronDrawingをどのように利用するかを探索できますQRコードにロゴを追加してカスタマイズする.