Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.22
|
Leadtools.Barcode Namespace > BarcodeWriter Class : CalculateBarcodeDataBounds Method |
public void CalculateBarcodeDataBounds( LogicalRectangle writeBounds, int xResolution, int yResolution, BarcodeData data, BarcodeWriteOptions options )
'Declaration
Public Sub CalculateBarcodeDataBounds( _ ByVal writeBounds As LogicalRectangle, _ ByVal xResolution As Integer, _ ByVal yResolution As Integer, _ ByVal data As BarcodeData, _ ByVal options As BarcodeWriteOptions _ )
'Usage
Dim instance As BarcodeWriter Dim writeBounds As LogicalRectangle Dim xResolution As Integer Dim yResolution As Integer Dim data As BarcodeData Dim options As BarcodeWriteOptions instance.CalculateBarcodeDataBounds(writeBounds, xResolution, yResolution, data, options)
public void CalculateBarcodeDataBounds( LogicalRectangle writeBounds, int xResolution, int yResolution, BarcodeData data, BarcodeWriteOptions options )
- (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 )
function Leadtools.Barcode.BarcodeWriter.CalculateBarcodeDataBounds( writeBounds , xResolution , yResolution , data , options )
public: void CalculateBarcodeDataBounds( LogicalRectangle writeBounds, int xResolution, int yResolution, BarcodeData^ data, BarcodeWriteOptions^ options )
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.
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.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Forms 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(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 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
using Leadtools; using Leadtools.Codecs; using Leadtools.Forms; 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(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 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"; }
using Leadtools; using Leadtools.Codecs; using Leadtools.Barcode; using Leadtools.ImageProcessing; public async Task BarcodeWriter_CalculateBarcodeDataBoundsExample() { string imageFileName = @"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 BarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR); // 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(LeadRectHelper.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, RasterColorHelper.FromKnownColor(RasterKnownColor.White))) { // Write the barcode writer.WriteBarcode(image, barcode, options); // Save the image to disk using(RasterCodecs codecs = new RasterCodecs()) { StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(imageFileName); await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.CcittGroup4, 1); } } }
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); } }
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