LEADTOOLSバーコード(Leadtools.Barcodeアセンブリ)

フレームを表示

ReadBarcode(RasterImage、LogicalRectangle、BarcodeSymbology[]、BarcodeReadOptions[])メソッド








画像データを格納するRasterImageオブジェクト。nullVisual BasicではNothing)であってはいけません。
バーコードの検索と検出を行う画像領域を指定するLogicalRectangleLogicalRectangle.Emptyを指定すると、画像全体が検索されます。
検索するバーコード体系(タイプ)を指定するBarcodeSymbology列挙体メンバの配列。
使うオプションを指定するBarcodeReadOptionsの配列。null (Visual BasicではNothing)を指定すると、現在のデフォルトオプションが使用されます。null以外を指定すると、読み取られるバーコード体系に対応するオプションが使用されます。読み取られるバーコード体系に対応する明示的なオプションが配列に含まれていない場合は、デフォルトのバージョンが使用されます。
指定したグループに含まれるシンボルとオプションを使用して、画像から1つのバーコードを読み取ります。
構文
'Declaration
 
Public Overloads Function ReadBarcode( _
   ByVal image As RasterImage, _
   ByVal searchBounds As LogicalRectangle, _
   ByVal symbologies() As BarcodeSymbology, _
   ByVal options() As BarcodeReadOptions _
) As BarcodeData
'Usage
 
Dim instance As BarcodeReader
Dim image As RasterImage
Dim searchBounds As LogicalRectangle
Dim symbologies() As BarcodeSymbology
Dim options() As BarcodeReadOptions
Dim value As BarcodeData
 
value = instance.ReadBarcode(image, searchBounds, symbologies, options)
- (nullable LTBarcodeData *)readBarcode:(LTRasterImage *)image 
                           searchBounds:(LeadRect)searchBounds 
                            symbologies:(nullable NSArray<NSNumber *> *)symbologies 
                                options:(nullable NSArray<LTBarcodeReadOptions *> *)options 
                                  error:(NSError **)error
            
public BarcodeData readBarcode(
  RasterImage image, 
  LeadRect searchBounds, 
  BarcodeSymbology[] symbologies, 
  BarcodeReadOptions[] options
)
            
 function Leadtools.Barcode.BarcodeReader.ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology[],BarcodeReadOptions[])( 
   image ,
   searchBounds ,
   symbologies ,
   options 
)

パラメーター

image
画像データを格納するRasterImageオブジェクト。nullVisual BasicではNothing)であってはいけません。
searchBounds
バーコードの検索と検出を行う画像領域を指定するLogicalRectangleLogicalRectangle.Emptyを指定すると、画像全体が検索されます。
バーコード体系
検索するバーコード体系(タイプ)を指定するBarcodeSymbology列挙体メンバの配列。
オプション
使うオプションを指定するBarcodeReadOptionsの配列。null (Visual BasicではNothing)を指定すると、現在のデフォルトオプションが使用されます。null以外を指定すると、読み取られるバーコード体系に対応するオプションが使用されます。読み取られるバーコード体系に対応する明示的なオプションが配列に含まれていない場合は、デフォルトのバージョンが使用されます。

戻り値

BarcodeDataのインスタンスまたは見つけられるバーコードのシンボル、データ、場所と任意の回転角を格納するその派生クラスの1つ。バーコードが見つからないならば、このメソッドはnullVisual BasicではNothing)を返します。
解説

バーコード読み取りに関する詳細は、「BarcodeReader」を参照してください。

このメソッドは、既知のグループに含まれる単一のバーコードを読み取る場合に使用します。たとえば、いずれかのUPC型となることができるバーコードを読み取るには、BarcodeSymbology.UPCABarcodeSymbology.UPCE。の配列を渡します。

LEADTOOLSバーコード読み取りエンジンは速度の点で最適化されており、複数の類似したバーコード体系を同時に検索できます。このメソッドは、単にバーコード体系と現在のオプションを用いて正しく検出される最初のバーコードを返します。

ReadSymbologyイベントは、任意のバーコード体系を読み取る前と読み取った後に発生します。読み取りオプションには、デフォルトオプションが使用されるか、イベントデータのBarcodeReadSymbologyEventArgs.Optionsプロパティに設定されたオプションが使用されます。

バーコード体系がnull (Visual BasicではNothing)の場合は、現在使用可能なすべてのバーコード体系が使用されます。このパラメーターに空の配列を指定した場合は、バーコードは検出されず、nullVisual BasicではNothing)が返されます。

BarcodeReaderは、以下のバーコード読まれたメソッドを提供します:

メソッド 説明
ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbologyシンボル)ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbologyシンボル、BarcodeReadOptionsオプション)

指定したバーコード体系と、デフォルトまたは明示的なオプションを使用して、画像から1つのバーコードを読み取ります。これらのメソッドは、画像から1つのバーコードを読み取る場合(たとえばBarcodeSymbology.QRを指定してQRシンボルを読み取るなど)や、BarcodeSymbology.Unknown。を使用してその種類にかかわらず見つかった任意のバーコードを読み取る場合に使用します。

ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbology[]バーコード体系)ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbology[]バーコード体系、BarcodeReadOptions[]オプション)

指定したグループに含まれるバーコード体系とデフォルトまたは明示的なオプションを使用して、画像から1つのバーコードを読み取ります。このメソッドは、既知のグループに含まれる1つのバーコードを読み取る場合に使用します。たとえば、いずれかのUPC型となることができるバーコードを読み取るには、BarcodeSymbology.UPCABarcodeSymbology.UPCE。の配列を渡します。

ReadBarcodes(RasterImage image、LogicalRectangle searchBounds、int maximumBarcodes、BarcodeSymbology[]バーコード体系)ReadBarcodes(RasterImage image、LogicalRectangle searchBounds、int maximumBarcodes、BarcodeSymbology[]バーコード体系、BarcodeReadOptions[]オプション)

指定したグループに含まれるバーコード体系とデフォルトまたは明示的なオプションを使用して、画像から複数のバーコードを読み取ります。これらのメソッドは、同じバーコード体系または複数のバーコード体系のバーコードを複数読み取る場合に使用します。

サンプル

このサンプルは、回転画像から製品を識別するのに用いられる任意のUPCバーコードを読むためにこのメソッドを使う方法を示します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

      
Public Sub BarcodeReader_ReadBarcodeExample4()
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif")
   ' Create a Barcode engine
   Dim engine As New BarcodeEngine()

   ' Get the Barcode reader instance
   Dim reader As BarcodeReader = engine.Reader

   Using codecs As New RasterCodecs()
      Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Rotate the image by 90, so default option of reading horizonal barcodes will not work
         Console.WriteLine("Rotating the image by 90 degrees")
         Dim rotate As New RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White))
         rotate.Run(image)

         ' In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies
         Dim upcSymbologies() As BarcodeSymbology = _
         { _
            BarcodeSymbology.UPCA, _
            BarcodeSymbology.UPCE _
         }

         ' Read the first UPC barcode from the image using default options
         Console.WriteLine("Reading barcodes using default options")
         Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, Nothing)

         ' Show its location and data if found
         ' This will print out "Not found"
         If Not IsNothing(barcode) Then
            Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value)
         Else
            Console.WriteLine("Not found")
         End If

         ' Now get the options we used previously, and change the 1D linear barcode read options
         ' to search for barcodes in both horizontal and vertical directions
         ' Note: Same options are used for UPCA and UPCE, so we only need one options class
         Dim oneDReadOptions As OneDBarcodeReadOptions = DirectCast(reader.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeReadOptions)

         ' Change the read direction
         oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical

         ' Try again using our options
         Console.WriteLine("Reading barcodes using our options")
         barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, New BarcodeReadOptions() {oneDReadOptions})

         ' Show its location and data if found
         ' This will find the barcode and print its information now
         If Not IsNothing(barcode) Then
            Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value)
         Else
            Console.WriteLine("Not found")
         End If
      End Using
   End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;

      
public void BarcodeReader_ReadBarcodeExample4()
{
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode1.tif");
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Get the Barcode reader instance
   BarcodeReader reader = engine.Reader;

   using(RasterCodecs codecs = new RasterCodecs())
   {
      using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
      {
         // Rotate the image by 90, so default option of reading horizonal barcodes will not work
         Console.WriteLine("Rotating the image by 90 degrees");
         RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White));
         rotate.Run(image);

         // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies
         BarcodeSymbology[] upcSymbologies =
         {
            BarcodeSymbology.UPCA,
            BarcodeSymbology.UPCE
         };

         // Read the first UPC barcode from the image using default options
         Console.WriteLine("Reading barcodes using default options");
         BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, null);

         // Show its location and data if found
         // This will print out "Not found"
         if(barcode != null)
         {
            Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value);
         }
         else
         {
            Console.WriteLine("Not found");
         }

         // Now get the options we used previously, and change the 1D linear barcode read options
         // to search for barcodes in both horizontal and vertical directions
         // Note: Same options are used for UPCA and UPCE, so we only need one options class
         OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions;

         // Change the read direction
         oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical;

         // Try again using our options
         Console.WriteLine("Reading barcodes using our options");
         barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, new BarcodeReadOptions[] { oneDReadOptions });

         // Show its location and data if found
         // This will find the barcode and print its information now
         if(barcode != null)
         {
            Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value);
         }
         else
         {
            Console.WriteLine("Not found");
         }
      }
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
using Leadtools.Examples;

public void BarcodeReader_ReadBarcodeExample4(RasterImage image)
{
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();
   // Get the Barcode reader instance
   BarcodeReader reader = engine.Reader;

   RasterCodecs codecs = new RasterCodecs();

   // Rotate the image by 90, so default option of reading horizonal barcodes will not work
   Console.WriteLine("Rotating the image by 90 degrees");
   RotateCommand rotate = new RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White));
   rotate.Run(image);

   // In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies
   BarcodeSymbology[] upcSymbologies =
   {
      BarcodeSymbology.UPCA,
      BarcodeSymbology.UPCE
   };

   // Read the first UPC barcode from the image using default options
   Console.WriteLine("Reading barcodes using default options");
   BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, null);

   // Show its location and data if found
   // This will print out "Not found"
   if(barcode != null)
   {
      Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value);
   }
   else
   {
      Console.WriteLine("Not found");
   }

   // Now get the options we used previously, and change the 1D linear barcode read options
   // to search for barcodes in both horizontal and vertical directions
   // Note: Same options are used for UPCA and UPCE, so we only need one options class
   OneDBarcodeReadOptions oneDReadOptions = reader.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeReadOptions;

   // Change the read direction
   oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical;

   // Try again using our options
   Console.WriteLine("Reading barcodes using our options");
   barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, new BarcodeReadOptions[] { oneDReadOptions });

   // Show its location and data if found
   // This will find the barcode and print its information now
   if(barcode != null)
   {
      Console.WriteLine("Found a {0} barcode at {1}, data:\n{2}", barcode.Symbology, barcode.Bounds, barcode.Value);
   }
   else
   {
      Console.WriteLine("Not found");
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

Public Sub BarcodeReader_ReadBarcodeExample4(ByVal image As RasterImage)
   ' Create a Barcode engine
   Dim engine As BarcodeEngine = New BarcodeEngine()
   ' Get the Barcode reader instance
   Dim reader As BarcodeReader = engine.Reader

   Dim codecs As RasterCodecs = New RasterCodecs()

   ' Rotate the image by 90, so default option of reading horizonal barcodes will not work
   Console.WriteLine("Rotating the image by 90 degrees")
   Dim rotate As RotateCommand = New RotateCommand(90 * 100, RotateCommandFlags.Resize, RasterColor.FromKnownColor(RasterKnownColor.White))
   rotate.Run(image)

   ' In the US, UPC barcodes are used to identity products. So, create an array of UPC symbologies
   Dim upcSymbologies As BarcodeSymbology() = {BarcodeSymbology.UPCA, BarcodeSymbology.UPCE}

   ' Read the first UPC barcode from the image using default options
   Console.WriteLine("Reading barcodes using default options")
   Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, Nothing)

   ' Show its location and data if found
   ' This will print out "Not found"
   If Not barcode Is Nothing Then
      Console.WriteLine("Found a {0} barcode at {1}, data:" & Constants.vbLf & "{2}", barcode.Symbology, barcode.Bounds, barcode.Value)
   Else
      Console.WriteLine("Not found")
   End If

   ' Now get the options we used previously, and change the 1D linear barcode read options
   ' to search for barcodes in both horizontal and vertical directions
   ' Note: Same options are used for UPCA and UPCE, so we only need one options class
   Dim oneDReadOptions As OneDBarcodeReadOptions = TryCast(reader.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeReadOptions)

   ' Change the read direction
   oneDReadOptions.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical

   ' Try again using our options
   Console.WriteLine("Reading barcodes using our options")
   barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, upcSymbologies, New BarcodeReadOptions() {oneDReadOptions})

   ' Show its location and data if found
   ' This will find the barcode and print its information now
   If Not barcode Is Nothing Then
      Console.WriteLine("Found a {0} barcode at {1}, data:" & Constants.vbLf & "{2}", barcode.Symbology, barcode.Bounds, barcode.Value)
   Else
      Console.WriteLine("Not found")
   End If
End Sub
必要条件

ターゲットプラットホーム

参照

参照

BarcodeReaderクラス
BarcodeReaderメンバ
オーバーロードリスト
ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbologyシンボル)
ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbologyシンボル、BarcodeReadOptionsオプション)
ReadBarcode(RasterImage image、LogicalRectangle searchBounds、BarcodeSymbology[]バーコード体系)
ReadBarcodes(RasterImage image、LogicalRectangle searchBounds、int maximumBarcodes、BarcodeSymbology[]バーコード体系)
ReadBarcodes(RasterImage image、LogicalRectangle searchBounds、int maximumBarcodes、BarcodeSymbology[]バーコード体系、BarcodeReadOptions[]オプション)
LEADTOOLSバーコードによるプログラミング
サポートされているバーコード体系
バーコードサポートのロック解除
読み取りバーコードチュートリアル

Leadtools.Barcodeは、バーコードモジュールのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能