←Select platform

CalculateBarcodeDataBounds Method

Summary

Calculates the exact pixel size required to write the specified barcode.

Syntax
C#
VB
Objective-C
C++
Java
public void CalculateBarcodeDataBounds( 
   LeadRect writeBounds, 
   int xResolution, 
   int yResolution, 
   BarcodeData data, 
   BarcodeWriteOptions options 
) 
Public Sub CalculateBarcodeDataBounds( _ 
   ByVal writeBounds As LeadRect, _ 
   ByVal xResolution As Integer, _ 
   ByVal yResolution As Integer, _ 
   ByVal data As BarcodeData, _ 
   ByVal options As BarcodeWriteOptions _ 
)  
- (BOOL)calculateBarcodeDataBounds:(LeadRect)writeBounds  
                       xResolution:(NSInteger)xResolution  
                       yResolution:(NSInteger)yResolution  
                              data:(LTBarcodeData *)data  
                           options:(nullable LTBarcodeWriteOptions *)options  
                             error:(NSError **)error 
public void calculateBarcodeDataBounds( 
  LeadRect writeBounds,  
  int xResolution,  
  int yResolution,  
  BarcodeData data,  
  BarcodeWriteOptions options 
) 
public: 
void CalculateBarcodeDataBounds(  
   LeadRect writeBounds, 
   int xResolution, 
   int yResolution, 
   BarcodeData^ data, 
   BarcodeWriteOptions^ options 
)  

Parameters

writeBounds
The location where the barcode should be written.

xResolution
Horizontal resolution value of the destination image that will be used to write the barcode to.

yResolution
Vertical resolution value of the destination image that will be used to write the barcode to.

data
An BarcodeData object that contains the barcode data to write.

options
Options write options to use.

Remarks

After this method returns, the width and height values of BarcodeData.Bounds will be updated with the exact pixel size required to write the barcode with the specified options.

The BarcodeData contains the BarcodeData.Bounds property that should be populated with the location and size of the final barcode on the image. Not all sizes can be used when writing a barcode and the value of the width and height of the bounds can have a special meaning. You can use the CalculateBarcodeDataBounds method to return the exact location of the destination barcode on the image without committing it based on the data, symbology and options selected. For more information, Writing Barcodes - Bounds and XModule.

Example

This example will use CalculateBarcodeDataBounds to calculate the smallest size required to write the specified QR barcode, then it will create an image with the specified size, and finally write the barcode to it.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Barcode; 
using Leadtools.ImageProcessing; 
 
public void BarcodeWriter_CalculateBarcodeDataBoundsExample() 
{ 
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyQRBarcode.tif"); 
 
   BarcodeEngine engine = new BarcodeEngine(); 
   BarcodeWriter writer = engine.Writer; 
 
   // Create the QR barcode data, we will use the default but you change it 
   // if needed 
   QRBarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData; 
 
   // Change the X Module to be 0.05 inches 
   QRBarcodeWriteOptions options = writer.GetDefaultOptions(BarcodeSymbology.QR) as QRBarcodeWriteOptions; 
   options.XModule = 50; 
 
   // Calculate the size of the barcode with these options 
   int resolution = 300; 
   writer.CalculateBarcodeDataBounds(LeadRect.Empty, resolution, resolution, barcode, options); 
 
   // Now create an image with the barcode size 
   LeadRect pixels = barcode.Bounds; 
   using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))) 
   { 
      // Write the barcode 
      writer.WriteBarcode(image, barcode, options); 
 
      // Save the image to disk 
      using (RasterCodecs codecs = new RasterCodecs()) 
      { 
         codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1); 
      } 
   } 
} 
 
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 BarcodeWriter_CalculateBarcodeDataBoundsExample() 
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "MyQRBarcode.tif") 
 
   Dim engine As New BarcodeEngine() 
   Dim writer As BarcodeWriter = engine.Writer 
 
   ' Create the QR barcode data, we will use the default but you change it 
   ' if needed 
   Dim barcode As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData) 
 
   ' Change the X Module to be 0.05 inches 
   Dim options As QRBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.QR), QRBarcodeWriteOptions) 
   options.XModule = 50 
 
   ' Calculate the size of the barcode with these options 
   Dim resolution As Integer = 300 
   writer.CalculateBarcodeDataBounds(LeadRect.Empty, resolution, resolution, barcode, options) 
 
   ' Now create an image with the barcode size 
   Dim pixels As LeadRect = barcode.Bounds 
   Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)) 
      ' Write the barcode 
      writer.WriteBarcode(image, barcode, options) 
 
      ' Save the image to disk 
      Using codecs As New RasterCodecs() 
         codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1) 
      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 BarcodeWriter_CalculateBarcodeDataBoundsExample(Stream outStream) 
{ 
   BarcodeEngine engine = new BarcodeEngine(); 
   BarcodeWriter writer = engine.Writer; 
 
   // Create the QR barcode data, we will use the default but you change it 
   // if needed 
   QRBarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData; 
 
   // Change the X Module to be 0.05 inches 
   QRBarcodeWriteOptions options = writer.GetDefaultOptions(BarcodeSymbology.QR) as QRBarcodeWriteOptions; 
   options.XModule = 50; 
 
   // Calculate the size of the barcode with these options 
   int resolution = 300; 
   writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, barcode, options); 
 
   // Now create an image with the barcode size 
   LeadRect pixels = barcode.Bounds.ToRectangle(resolution, resolution); 
   using (RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))) 
   { 
      // Write the barcode 
      writer.WriteBarcode(image, barcode, options); 
 
      // Save the image to disk 
      RasterCodecs codecs = new RasterCodecs(); 
      codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1); 
   } 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms 
Imports Leadtools.Barcode 
Imports Leadtools.ImageProcessing 
 
Public Sub BarcodeWriter_CalculateBarcodeDataBoundsExample(ByVal outStream As Stream) 
   Dim engine As BarcodeEngine = New BarcodeEngine() 
   Dim writer As BarcodeWriter = engine.Writer 
 
   ' Create the QR barcode data, we will use the default but you change it 
   ' if needed 
   Dim barcode As QRBarcodeData = TryCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData) 
 
   ' Change the X Module to be 0.05 inches 
   Dim options As QRBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.QR), QRBarcodeWriteOptions) 
   options.XModule = 50 
 
   ' Calculate the size of the barcode with these options 
   Dim resolution As Integer = 300 
   writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, barcode, options) 
 
   ' Now create an image with the barcode size 
   Dim pixels As LeadRect = barcode.Bounds.ToRectangle(resolution, resolution) 
   Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)) 
      ' Write the barcode 
      writer.WriteBarcode(image, barcode, options) 
 
      ' Save the image to disk 
      Dim codecs As RasterCodecs = New RasterCodecs() 
      codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1) 
   End Using 
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