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

フレームを表示

GetDataメソッド








生のbyte配列としてこのバーコードのデータを取得します。
構文
public virtual byte[] GetData()
'Declaration
 
Public Overridable Function GetData() As Byte()
'Usage
 
Dim instance As BarcodeData
Dim value() As Byte
 
value = instance.GetData()
public virtual byte[] GetData()
@property (nonatomic, strong, nullable) NSData *data
public byte[] getData()
 function Leadtools.Barcode.BarcodeData.GetData()
public:
virtual array<byte>^ GetData(); 

戻り値

このバーコードのデータを指定するByteの配列。デフォルト値は、nullVisual BasicではNothing)です。
解説

読み取りバーコード

BarcodeReader.ReadBarcodeまたはBarcodeReader.ReadBarcodesメソッドは、バーコードを読むのに用いられるか、もっとimageからです。これらのメソッドの各々は、見つけられる各々のバーコードのために、オブジェクトまたは型BarcodeDataのオブジェクトの配列を返します。各々のオブジェクトの中に、バーコードのデータは、GetDataメソッドでアクセスできる生のbyte配列として保存されます。データの形式は、バーコード体系(型)に依存します。

プロパティは、データの文字列表現(ASCIIテキストとして)を格納します。このプロパティの値は、単にGetDataから返されるbyte配列のASCII文字列です。

バーコードの書き込み

BarcodeWriter.WriteBarcodeメソッドは、バーコードをimageへ書き込むのに用いられます。BarcodeDataのインスタンスを作成しなければならなくて、このメソッドにそれを渡す前に、そのメンバを塗りつぶさなければなりません。byte配列としてバーコードの生データを設定するために、SetDataメソッドを使います。ASCII stringとしてデータを設定するために、プロパティを使うこともできます。

QRとPDF417などの一部のバーコードでは、必ずしもASCIIテキストではないデータもサポートされています。たとえば、画像、URL、生のバイトストリームなどです。これらのバーコードについては、読むとき、プロパティはデータの正確な表現を返さないかもしれません。代わりに、BarcodeData.GetDataメソッドを使って、それから解析します。また、バーコードを書き込むとき、SetDataメソッドを用いて生データを設定しなければなりません。

オーストラリアのポストバーコード(BarcodeSymbology.AustralianPost4State)stringは、様々なフィールド(すなわちFCC、DPIDとCIF)を識別するために、特別な形式を持っています。この文字列形式では、以下のようにフィールドの間にダッシュが入ります。FCCは2桁のフィールド(有効な値は11、87、45、92、59、62、44)、DPIDは住所を表す8桁のフィールドで、CIF(オプション)は顧客情報フィールドを表します。詳細は、「標準」を参照してください。この文字列形式は、両方の読み書きのために適用します。

GS1 Databar Expanded(BarcodeSymbology.GS1DatabarExpanded)とGS1 Databar Expanded Stacked(BarcodeSymbology.GS1DatabarExpandedStaceked)バーコード文字列は、特定のエンコーディングメソッド(例えばメソッド「1」、メソッド「0100」、メソッド「0101」)を示す文字列形式に従って書き込まれる必要があります … 例えば、その他string(01)00012345678905(10)ABC123」は、メソッド「1」(すなわち一般識別データ)を用いてエンコードされます。品目識別番号の14桁目(前の例では"5")が存在する場合、その桁はチェックデジットとみなされ、無視されます。これらの特殊なエンコード形式のいずれにも従わずに文字列を書き込んだ場合は、方法「00」(多目的データ)でエンコードされます。

読み取り操作によってBarcodeDataが返されるとき、リンケージビットを示すために、文字列の先頭に波カッコ("{"と"}")で囲まれた桁が付加されます。中括弧はエンコードされたバーコードデータの一部でありません、そして、標準で定義されません。むしろ、つながり数字を他のデータと区別します。たとえば、リンケージビットを0に設定して「(01)00012345678905(10)ABC123」というバーコード文字列を書き込んだ場合、読み取り関数でこのバーコード文字列を読み取ると、結果は「{0}(01)00012345678905(10)ABC123」になります。この場合、{0}はリンケージデジットで、残りのキャラクターがバーコードデータを表します。

派生型

一部のバーコード体系には、BarcodeDataにない付加情報が含まれています。このようなバーコード体系に対応するため、LEADTOOLSには付加情報を含む派生クラスが追加されています。詳細については、「BarcodeData」を参照してください。

サンプル

このサンプルはimageからバーコードを読んで、そのデータを示します。

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

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

   ' Load the image
   Using codecs As New RasterCodecs()
      Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)
         ' Read the first QR barcode from the image
         Dim data As BarcodeData = engine.Reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR)

         ' Show the barcode data found (if any)
         If Not IsNothing(data) Then
            Console.WriteLine("Raw data is:")
            Dim bytes() As Byte = data.GetData()
            If Not IsNothing(bytes) Then
               Dim counter As Integer = 0
               For i As Integer = 0 To bytes.Length - 1
                  Console.Write("{0:X2} ", bytes(i))
                  counter = counter + 1
                  If counter > 7 Then
                     Console.WriteLine()
                     counter = 0
                  End If
               Next
            Else
               Console.WriteLine("Empty")
            End If
         Else
            Console.WriteLine("No barcode 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 BarcodeData_GetDataExample()
{
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.tif");
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Load the image
   using(RasterCodecs codecs = new RasterCodecs())
   {
      using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
      {
         // Read the first QR barcode from the image
         BarcodeData data = engine.Reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR);

         // Show the barcode data found (if any)
         if(data != null)
         {
            Console.WriteLine("Raw data is:");
            byte[] bytes = data.GetData();
            if(bytes != null)
            {
               int counter = 0;
               for(int i = 0; i < bytes.Length; i++)
               {
                  Console.Write("{0:X2} ", bytes[i]);
                  counter++;
                  if(counter > 7)
                  {
                     Console.WriteLine();
                     counter = 0;
                  }
               }
            }
            else
            {
               Console.WriteLine("Empty");
            }
         }
         else
         {
            Console.WriteLine("No barcode found");
         }
      }
   }
}

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

      
public async Task BarcodeData_GetDataExample()
{
   string imageFileName = @"Assets\Barcode2.tif";
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Load the image
   using(RasterCodecs codecs = new RasterCodecs())
   {
      StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(imageFileName);
      using(RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
      {
         // Read the first QR barcode from the image
         BarcodeData data = engine.Reader.ReadBarcode(image, LeadRectHelper.Empty, BarcodeSymbology.QR);

         // Show the barcode data found (if any)
         if(data != null)
         {
            Debug.WriteLine("Raw data is:");
            byte[] bytes = data.GetData();
            if(bytes != null)
            {
               int counter = 0;
               StringBuilder sb = new StringBuilder();
               for(int i = 0; i < bytes.Length; i++)
               {
                  sb.AppendFormat("{0:X2} ", bytes[i]);
                  counter++;
                  if(counter > 7)
                  {
                     sb.AppendLine();
                     counter = 0;
                  }
               }
               Debug.WriteLine(sb.ToString());
            }
            else
            {
               Debug.WriteLine("Empty");
            }
         }
         else
         {
            Debug.WriteLine("No barcode found");
         }
      }
   }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
using Leadtools.Examples;

public void BarcodeData_GetDataExample(RasterImage image)
{
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();
   // Load the image
   RasterCodecs codecs = new RasterCodecs();

   // Read the first QR barcode from the image
   BarcodeData data = engine.Reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR);

   // Show the barcode data found (if any)
   if(data != null)
   {
      Console.WriteLine("Raw data is:");
      byte[] bytes = data.GetData();
      if(bytes != null)
      {
         int counter = 0;
         for(int i = 0; i < bytes.Length; i++)
         {
            Console.Write("{0:X2} ", bytes[i]);
            counter++;
            if(counter > 7)
            {
               Console.WriteLine();
               counter = 0;
            }
         }
      }
      else
      {
         Console.WriteLine("Empty");
      }
   }
   else
   {
      Console.WriteLine("No barcode found");
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

Public Sub BarcodeData_GetDataExample(ByVal image As RasterImage)
  ' Create a Barcode engine
  Dim engine As BarcodeEngine = New BarcodeEngine()
  ' Load the image
  Dim codecs As RasterCodecs = New RasterCodecs()

  ' Read the first QR barcode from the image
  Dim data As BarcodeData = engine.Reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR)

  ' Show the barcode data found (if any)
  If Not data Is Nothing Then
    Console.WriteLine("Raw data is:")
    Dim bytes As Byte() = data.GetData()
    If Not bytes Is Nothing Then
       Dim counter As Integer = 0
       Dim i As Integer = 0
       Do While i < bytes.Length
         Console.Write("{0:X2} ", bytes(i))
         counter += 1
         If counter > 7 Then
           Console.WriteLine()
           counter = 0
         End If
          i += 1
       Loop
    Else
       Console.WriteLine("Empty")
    End If
  Else
    Console.WriteLine("No barcode found")
  End If
End Sub
必要条件

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

参照

参照

BarcodeDataクラス
BarcodeDataメンバ
Symbologyプロパティ
Boundsプロパティ
SetDataメソッド
Valueプロパティ

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