←Select platform

GetData Method

Summary

Gets the data of this barcode as raw byte array.

Syntax
C#
VB
Objective-C
C++
Java
public virtual byte[] GetData() 
Public Overridable Function GetData() As Byte() 
@property (nonatomic, strong, nullable) NSData *data 
public byte[] getData() 
public: 
virtual array<byte>^ GetData();  

Return Value

An array of Byte that specifies the data of this barcode. The default value is null (Nothing in VB).

Remarks

Reading Barcodes

The BarcodeReader.ReadBarcode or BarcodeReader.ReadBarcodes methods are used to read a barcode or more from an image. Each of these methods return an object or an array of objects of type BarcodeData for each barcode found. Inside each object, the data of the barcode will be stored as a raw byte array that can be accessed with the GetData method. The format of the data is dependent on the barcode symbology (type).

The Value property contains a string representation (as ASCII text) of the data. The value of this property is simply an ASCII string of the byte array returned from GetData.

Writing Barcodes

The BarcodeWriter.WriteBarcode method is used to write a barcodes to an image. You must create an instance of BarcodeData and fill its members before passing it to this method. Use the SetData method to set the raw data of the barcode as a byte array. You can also use the Value property to set the data as an ASCII string.

Some barcodes like QR and PDF417 support data that is not necessary ASCII text. For example, an image, a URL or just raw stream of bytes. For these barcodes, when reading them, the Value property may not return an accurate representation of the data. Instead, use the BarcodeData.GetData method and then parse them. Also, when writing barcodes, you must set the raw data using the SetData method.

The Australian post barcode (BarcodeSymbology.AustralianPost4State) string has a special format to distinguish different fields (i.e. FCC, DPID, and CIF). The string format puts dashes between fields as follows: "FCC-DIPD-CIF", where FCC is a 2-digit field (valid values are 11, 87, 45, 92, 59, 62, and 44), DPID is an 8-digit field representing the address, and CIF (optional) represents the customer information field. For more information, please refer to the standard. This string format applies for both read and write.

GS1 Databar Expanded (BarcodeSymbology.GS1DatabarExpanded) and GS1 Databar Expanded Stacked (BarcodeSymbology.GS1DatabarExpandedStaceked) barcode strings need to be written conforming to a string format that indicates a particular encoding method, such as Method "1", Method "0100", Method "0101", … etc. For example, a string (01)00012345678905(10)ABC123" is encoded using Method "1" (i.e. General Identification Data). Note that 14th digit of the item identification number (in this case, "5"), if it exists, is considered as a check digit and is ignored. A string that is written without following any of these special encoding formats will be encoded by Method "00" (i.e. General Purpose Data).

When a BarcodeData is returned from a read operation, an extra digit in curly brackets (i.e. "{" and "}") is added to indicate the linkage bit at the beginning of the string. The curly brackets are not part of the encoded barcode data, and they are not defined in the standard. Rather, they distinguish the linkage digit from other data. For example, if a barcode is written with string "(01)00012345678905(10)ABC123" while the linkage bit is set to zero, the read function result will be "{0}(01)00012345678905(10)ABC123", where {0} is the linkage digit and the remaining characters are the barcode data.

Derived Types

Some barcode symbologies contain extra information that are not available in BarcodeData, for these types, LEADTOOLS adds derived classes to contain the extra information. Refer to BarcodeData for more information.

Example

This example reads a barcode from an image and shows its data.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
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, LeadRect.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"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
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, LeadRect.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 
c#[Silverlight C# Example] 
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"); 
   } 
} 
vb[Silverlight VB Example] 
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 

Requirements

Target Platforms

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Barcode Assembly