public int Granularity { get; set; }
@property (nonatomic, assign) NSInteger granularity;
public int getGranularity()
public void setGranularity(int value)
Granularity # get and set (PostNetPlanetBarcodeReadOptions)
An Int32 that indicates the number of scanned lines per column to skip when reading a barcode. Must be a value greater than or equal to 1. The default value is 9.
A value of 9 means that each tenth line will be scanned when looking for a barcode. Scanning every line will slow the search process while skipping too many lines may skip over the barcode.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
public void PostNetPlanetBarcode_Example()
{
string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyPostNetPlanetBarcodes.tif");
BarcodeEngine engine = new BarcodeEngine();
// Create the image to write the barcodes to
int resolution = 300;
using (RasterImage image = RasterImage.Create((int)(8.5 * resolution), (int)(11.0 * resolution), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
{
// Write a POSTNET and a PLANET barcodes
WriteBarcode(engine.Writer, image, BarcodeSymbology.PostNet, "123456789", new LeadRect(10, 100, 400, 200));
WriteBarcode(engine.Writer, image, BarcodeSymbology.Planet, "12345678901", new LeadRect(10, 500, 400, 200));
// Save the image
using (RasterCodecs codecs = new RasterCodecs())
{
codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1);
}
}
// Now read the barcodes again
using (RasterCodecs codecs = new RasterCodecs())
{
using (RasterImage image = codecs.Load(imageFileName))
{
// Read the POSTNET barcode
ReadBarcodes(engine.Reader, image, BarcodeSymbology.PostNet);
// Read the PLANET barcode
ReadBarcodes(engine.Reader, image, BarcodeSymbology.Planet);
}
}
}
private void WriteBarcode(BarcodeWriter writer, RasterImage image, BarcodeSymbology symbology, string value, LeadRect bounds)
{
// Create the barcode data
BarcodeData barcode = new BarcodeData(symbology, value);
barcode.Bounds = bounds;
// Set the write options
PostNetPlanetBarcodeWriteOptions options = new PostNetPlanetBarcodeWriteOptions();
options.UseXModule = false;
options.XModule = 30;
// Write it
Console.WriteLine("Writing {0} barcode with data: {1}", symbology, value);
writer.WriteBarcode(image, barcode, options);
}
private void ReadBarcodes(BarcodeReader reader, RasterImage image, BarcodeSymbology symbology)
{
// Setup read options
PostNetPlanetBarcodeReadOptions options = new PostNetPlanetBarcodeReadOptions();
options.SearchDirection = BarcodeSearchDirection.Horizontal;
options.Granularity = 9;
options.WhiteLinesNumber = 3;
options.ReturnCheckDigit = BarcodeReturnCheckDigit.Default;
Console.WriteLine("Reading {0} barcodes", symbology);
BarcodeData barcode = reader.ReadBarcode(image, LeadRect.Empty, symbology, options);
if (barcode != null)
{
Console.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value);
}
else
{
Console.WriteLine(" Not found");
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.File;
import java.io.IOException;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.barcode.*;
import leadtools.codecs.*;
public void postNetPlanetBarcodeExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String imageFileName = combine(LEAD_VARS_IMAGES_DIR, "PostNetPlanetBarcodes.tif");
RasterCodecs codecs = new RasterCodecs();
BarcodeEngine engine = new BarcodeEngine();
// Create the image to write the barcodes to
int resolution = 300;
RasterImage image = RasterImage.create((int) (8.5 * resolution), (int) (11.0 * resolution), 1, resolution,
RasterColor.fromKnownColor(RasterKnownColor.WHITE));
// Write a POSTNET and a PLANET barcodes
writeBarcode(engine.getWriter(), image, BarcodeSymbology.POST_NET, "123456789", new LeadRect(10, 100, 400, 200));
writeBarcode(engine.getWriter(), image, BarcodeSymbology.PLANET, "12345678901", new LeadRect(10, 500, 400, 200));
// Save the image
codecs.save(image, imageFileName, RasterImageFormat.CCITT_GROUP4, 1);
// Now read the barcodes again
image = codecs.load(imageFileName);
// Read the POSTNET barcode
readBarcodes(engine.getReader(), image, BarcodeSymbology.POST_NET);
// Read the PLANET barcode
readBarcodes(engine.getReader(), image, BarcodeSymbology.PLANET);
// Clean up
codecs.dispose();
image.dispose();
assertTrue("file unsuccessfully saved to " + imageFileName, (new File(imageFileName)).exists());
System.out.printf("File saved successfully to %s%n", imageFileName);
}
// Create the barcode data
private void writeBarcode(BarcodeWriter writer, RasterImage image, BarcodeSymbology symbology, String value, LeadRect bounds) {
BarcodeData barcode = new BarcodeData(symbology, value);
barcode.setBounds(bounds);
// Set the write options
PostNetPlanetBarcodeWriteOptions options = new PostNetPlanetBarcodeWriteOptions();
options.setUseXModule(false);
options.setXModule(30);
// Write it
System.out.printf("Writing %1s barcode with data: %2s%n", symbology, value);
writer.writeBarcode(image, barcode, options);
}
// Setup read options
private void readBarcodes(BarcodeReader reader, RasterImage image, BarcodeSymbology symbology) {
PostNetPlanetBarcodeReadOptions options = new PostNetPlanetBarcodeReadOptions();
options.setSearchDirection(BarcodeSearchDirection.HORIZONTAL);
options.setGranularity(9);
options.setWhiteLinesNumber(3);
options.setReturnCheckDigit(BarcodeReturnCheckDigit.DEFAULT);
System.out.printf("Reading %1s barcodes%n", symbology);
BarcodeData barcode = reader.readBarcode(image, LeadRect.getEmpty(), symbology, options);
if (barcode != null)
System.out.printf(" At %1s, data: %2s%n", barcode.getBounds(), barcode.getValue());
else
System.out.println(" Not found");
}
public static String combine(String path1, String path2) {
File file = new File(path1, path2);
return file.getPath();
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document