←Select platform

ForeColor Property

Summary

Gets or sets the barcode foreground (bars or symbol) color used when reading barcodes.

Syntax
C#
VB
Objective-C
C++
Java
public RasterColor ForeColor { get; set; } 
Public Property ForeColor As RasterColor 
@property (nonatomic, copy) LTRasterColor *foreColor 
public RasterColor getForeColor() 
public void setForeColor(RasterColor value) 
public: 
property RasterColor ForeColor { 
   RasterColor get(); 
   void set (    RasterColor ); 
} 

Property Value

A RasterColor that specifies the barcode foreground (bars or symbol) color to use when searching for barcodes. The default value is "Black" (RGB of #000000).

Remarks

If the input image is bitonal (B/W), then this value will not be used. The foreground color is always considered to be black (or the foreground color in the image palette) and the background color is always considered to be white (or the background color in the image palette).

When the input image is not bitonal, LEADTOOLS will perform intensity detect operation on the image to convert it to black and white before searching for the barcodes and uses the value of ForeColor and BackColor as the high and low threshold.

Example

This example reads a barcode from an image with specific colors.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
 
public void BarcodeReadOptions_ColorsExample() 
{ 
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.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)) 
      { 
         // Invert the image 
         Console.WriteLine("Inverting the image"); 
         Leadtools.ImageProcessing.Color.InvertCommand invert = new Leadtools.ImageProcessing.Color.InvertCommand(); 
         invert.Run(image); 
 
         // All barcodes have default options of black foreground color and white background color, so 
         // reading the barcode with default options should not return any barcodes right now 
 
         // Read the QR barcode from this image using default options 
         Console.WriteLine("Reading using default options"); 
         BarcodeData barcode = reader.ReadBarcode(image, LeadRect.Empty, BarcodeSymbology.QR, null); 
 
         // Show its location and data if found 
         // This will print out "Not found" 
         if (barcode != null) 
         { 
            Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); 
         } 
         else 
         { 
            Console.WriteLine("Not found"); 
         } 
 
         // Now create QR read options to have white foreground color and black background color 
         QRBarcodeReadOptions qrReadOptions = new QRBarcodeReadOptions(); 
         qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White); 
         qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black); 
 
         // And use it to try to read the QR barcode again 
         Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes"); 
         barcode = reader.ReadBarcode(image, LeadRect.Empty, BarcodeSymbology.QR, qrReadOptions); 
 
         // Show its location and data if found 
         // This will find the barcode and print its information now 
         if (barcode != null) 
         { 
            Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); 
         } 
         else 
         { 
            Console.WriteLine("Not 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 BarcodeReadOptions_ColorsExample() 
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.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) 
         ' Invert the image 
         Console.WriteLine("Inverting the image") 
         Dim invert As New Leadtools.ImageProcessing.Color.InvertCommand() 
         invert.Run(image) 
 
         ' All barcodes have default options of black foreground color and white background color, so 
         ' reading the barcode with default options should not return any barcodes right now 
 
         ' Read the QR barcode from this image using default options 
         Console.WriteLine("Reading using default options") 
         Dim barcode As BarcodeData = reader.ReadBarcode(image, LeadRect.Empty, BarcodeSymbology.QR, Nothing) 
 
         ' Show its location and data if found 
         ' This will print out "Not found" 
         If Not IsNothing(barcode) Then 
            Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value) 
         Else 
            Console.WriteLine("Not found") 
         End If 
 
         ' Now create QR read options to have white foreground color and black background color 
         Dim qrReadOptions As New QRBarcodeReadOptions() 
         qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White) 
         qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black) 
 
         ' And use it to try to read the QR barcode again 
         Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes") 
         barcode = reader.ReadBarcode(image, LeadRect.Empty, BarcodeSymbology.QR, qrReadOptions) 
 
         ' 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 at {0}, data:\n{1}", 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 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
using Leadtools.Examples; 
 
public void BarcodeReadOptions_ColorsExample(RasterImage image) 
{ 
   // Create a Barcode engine 
   BarcodeEngine engine = new BarcodeEngine(); 
 
   // Get the Barcode reader instance 
   BarcodeReader reader = engine.Reader; 
 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Invert the image 
   Console.WriteLine("Inverting the image"); 
   Leadtools.ImageProcessing.Color.InvertCommand invert = new Leadtools.ImageProcessing.Color.InvertCommand(); 
   invert.Run(image); 
 
   // All barcodes have default options of black foreground color and white background color, so 
   // reading the barcode with default options should not return any barcodes right now 
 
   // Read the QR barcode from this image using default options 
   Console.WriteLine("Reading using default options"); 
   BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, null); 
 
   // Show its location and data if found 
   // This will print out "Not found" 
   if (barcode != null) 
   { 
      Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); 
   } 
   else 
   { 
      Console.WriteLine("Not found"); 
   } 
 
   // Now create QR read options to have white foreground color and black background color 
   QRBarcodeReadOptions qrReadOptions = new QRBarcodeReadOptions(); 
   qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White); 
   qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black); 
 
   // And use it to try to read the QR barcode again 
   Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes"); 
   barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions); 
 
   // Show its location and data if found 
   // This will find the barcode and print its information now 
   if (barcode != null) 
   { 
      Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); 
   } 
   else 
   { 
      Console.WriteLine("Not found"); 
   } 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
 
Public Sub BarcodeReadOptions_ColorsExample(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() 
 
   ' Invert the image 
   Console.WriteLine("Inverting the image") 
   Dim invert As InvertCommand = New InvertCommand() 
   invert.Run(image) 
 
   ' All barcodes have default options of black foreground color and white background color, so 
   ' reading the barcode with default options should not return any barcodes right now 
 
   ' Read the QR barcode from this image using default options 
   Console.WriteLine("Reading using default options") 
   Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, Nothing) 
 
   ' Show its location and data if found 
   ' This will print out "Not found" 
   If Not barcode Is Nothing Then 
      Console.WriteLine("Found at {0}, data:" & Constants.vbLf & "{1}", barcode.Bounds, barcode.Value) 
   Else 
      Console.WriteLine("Not found") 
   End If 
 
   ' Now create QR read options to have white foreground color and black background color 
   Dim qrReadOptions As QRBarcodeReadOptions = New QRBarcodeReadOptions() 
   qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White) 
   qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black) 
 
   ' And use it to try to read the QR barcode again 
   Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes") 
   barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions) 
 
   ' 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 at {0}, data:" & Constants.vbLf & "{1}", barcode.Bounds, barcode.Value) 
   Else 
      Console.WriteLine("Not 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