[SerializableAttribute()]
public enum DatamatrixBarcodeSymbolSize
Value | Member | Description |
---|---|---|
0 | AutoSize |
Use the minimum required size based on the data inside the barcode (the data set using BarcodeData.SetData). This value is valid only when writing a Datamatrix barcode. |
1 | Size10X10 |
10 x 10 |
2 | Size12X12 |
12 X 12 |
3 | Size14X14 |
14 X 14 |
4 | Size16X16 |
16 X 16 |
5 | Size18X18 |
18 X 18 |
6 | Size20X20 |
20 X 20 |
7 | Size22X22 |
22 X 22 |
8 | Size24X24 |
24 X 24 |
9 | Size26X26 |
26 X 26 |
10 | Size32X32 |
32 X 32 |
11 | Size36X36 |
36 X 36 |
12 | Size40X40 |
40 X 40 |
13 | Size44X44 |
44 X 44 |
14 | Size48X48 |
48 X 48 |
15 | Size52X52 |
52 X 52 |
16 | Size64X64 |
64 X 64 |
17 | Size72X72 |
72 X 72 |
18 | Size80X80 |
80 X 80 |
19 | Size88X88 |
88 X 88 |
20 | Size96X96 |
96 X 96 |
21 | Size104X104 |
104 X 104 |
22 | Size120X120 |
120 X 120 |
23 | Size132X132 |
132 X 132 |
24 | Size144X144 |
144 X 144 |
25 | Size8X18 |
8 X 18 |
26 | Size8X32 |
8 X 32 |
27 | Size12X26 |
12 X 26 |
28 | Size12X36 |
12 X 36 |
29 | Size16X36 |
16 X 36 |
30 | Size16X48 |
16 X 48 |
31 | FitToBounds |
Use as much size to fit the data inside BarcodeData.Bounds. This value is valid only when writing a Datamatrix barcode. |
Used as the type for the DatamatrixBarcodeData.SymbolSize property to specify the Datamatrix barcode symbol size.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
public void DatamatrixBarcode_Example()
{
string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyDatamatrixBarcodes.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 two Datamatrix barcodes, a square and a rectangle one
WriteBarcode(engine.Writer, image, DatamatrixBarcodeSymbolSize.Size16X36, "Datamatrix1 16x36", false);
WriteBarcode(engine.Writer, image, DatamatrixBarcodeSymbolSize.Size132X132, "Datamatrix2 132x132", true);
// 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 only square symbols, should only read the first barcode
ReadBarcodes(engine.Reader, image, true);
// Read all symbols, should read both barcodes
ReadBarcodes(engine.Reader, image, false);
}
}
}
private void WriteBarcode(BarcodeWriter writer, RasterImage image, DatamatrixBarcodeSymbolSize symbolSize, string value, bool topLeft)
{
// Create the barcode data
DatamatrixBarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.Datamatrix) as DatamatrixBarcodeData;
barcode.SymbolSize = symbolSize;
barcode.Value = value;
barcode.Symbology= BarcodeSymbology.Datamatrix;
// We will use the alignment to position the barcodes, so use all of the image
barcode.Bounds = new LeadRect(0, 0, image.ImageWidth, image.ImageHeight);
// Set the write options
DatamatrixBarcodeWriteOptions options = new DatamatrixBarcodeWriteOptions();
if (topLeft)
{
options.HorizontalAlignment = BarcodeAlignment.Near;
options.VerticalAlignment = BarcodeAlignment.Near;
}
else
{
options.HorizontalAlignment = BarcodeAlignment.Far;
options.VerticalAlignment = BarcodeAlignment.Far;
}
options.DisableCompression = false;
options.GroupNumber = 0;
options.GroupTotal = 0;
options.FileIdNumberLowByte = 1;
options.FileIdNumberHighByte = 1;
options.XModule = 30;
options.HRItoGS1 = false;
// Write it
Console.WriteLine("Writing barcode with symbol size: {0} and Data: {1}", symbolSize, value);
writer.WriteBarcode(image, barcode, options);
}
private void ReadBarcodes(BarcodeReader reader, RasterImage image, bool squareOnly)
{
// Setup read options
DatamatrixBarcodeReadOptions options = new DatamatrixBarcodeReadOptions();
options.ReadSquareSymbolsOnly = squareOnly;
options.EnableDoublePass = false;
options.EnableDoublePassIfSuccess = false;
options.EnableInvertedSymbols = false;
options.EnableFastMode = true;
options.EnableSmallSymbols = true;
options.EnablePreprocessing = true;
options.GS1toHRI = false;
Console.WriteLine("Reading Datamatrix barcodes with ReadSquareSymbolsOnly set to {0}", squareOnly);
BarcodeData[] barcodes = reader.ReadBarcodes(image, LeadRect.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.Datamatrix }, new BarcodeReadOptions[] { options });
Console.WriteLine("{0} barcodes found:", barcodes.Length);
foreach (DatamatrixBarcodeData barcode in barcodes)
{
Console.WriteLine(" At {0}, symbol size: {1} data: {2} and symbology: {3}", barcode.Bounds, barcode.SymbolSize, barcode.Value, barcode.Symbology);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}