LEADTOOLSバーコード

フレームを表示

バーコードは、形状や形態はさまざまですが、「シンボル」という概念を持つことはすべてに共通しています。これは、1Dバーコードでは垂直バー、2Dバーコードではドットで表されます。下記は、一般のバーコードの例です:

UPC-Aのサンプル。一般的な1Dバーコード

QRのサンプル。一般的な2Dバーコード

シンボルの幅は、バーコードのXモジュールと呼ばれていて、通常1/1000インチの単位で表されます。この値は、正しくバーコードを読むために、ソフトウェアと専用のバーコードリーダーのために十分なサイズでなければなりません。一般的なXモジュール値は、インチの0.03です。イメージング期間には、この値は、imageの解像度に依存しています(たとえば300 DPIの解像度によるimageのために);この値は、9つのピクセルなどです。2つのピクセルの値は、通常ソフトウェアによって読める最小限のXモジュールサイズです。

バーコードのもう一つの特徴は、幅と高さの間のアスペクト比です。UPC-Aなどの、バーコードがくつろがせた何人かは決定します、他がそうである間、QRなどのどちらが常に四角いシェイプを持っていなければならないかについて制限します。

バーコードを書き込むとき、ソフトウェアは最終結果が上記の状況を満たすことを確実にしなければなりません。上記の条件を満たしていないバーコード画像は読み取れません。

BarcodeWriterオブジェクトは、バーコードをimageへ書き込むのに用いられるWriteBarcodeメソッドを格納します。このメソッドは、バーコードのシンボル、データと場所とサイズを格納する型BarcodeDataのオブジェクトを受け取ります。場所とサイズは、BarcodeData.Boundsプロパティで指定されています。

これのすべてのコードスニペットのために、ヘルプトピックは以下を使います:

1Dバーコード

以下のプロパティは、このセクションで論じられます:

1Dバーコードを書き込むとき、2つのモードでバーコードのサイズを設定することができます:

Xモジュールのない1Dバーコード

このモードでは、指定した幅と高さからバーコードライターがXモジュール値を計算します。これを達成するには、「Xモジュールを使用」プロパティ値をFalseに設定し、BarcodeData.Bounds。で任意の幅と高さを設定します。

サンプル:幅と高さ= 400×400ピクセルでimageの上でUPC-Aバーコードを書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(0, 0, 400, 400, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(0, 0, 400, 400, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコードサイズは、400×400ピクセルです。

すべての1Dバーコードタイプで任意のアスペクト比(幅と高さの値)を指定できるわけではないことに注意してください。一部のバーコード規格では、バーコードの幅と高さのアスペクト比を特定の比率にするよう規定されています。たとえば、上記のコードで使用するバーコードタイプをPOSTNETに変更した場合、異なる結果になります。

サンプル:幅と高さ= 400×400ピクセルでimageの上でPOSTNETバーコードを書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.PostNet)
             data.Bounds = New LogicalRectangle(0, 0, 400, 400, LogicalUnit.Pixel)
             Dim writeOptions As PostNetPlanetBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), PostNetPlanetBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.PostNet);
             data.Bounds = new LogicalRectangle(0, 0, 400, 400, LogicalUnit.Pixel);
             PostNetPlanetBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as PostNetPlanetBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコードサイズは、400×30ピクセルです。

事前定義アスペクト比に基づく幅からバーコード高さを計算するためにエンジンを指示するために、バーコード領域の高さを0に設定します。

サンプル:UPC-Aバーコードを幅×高さ = 400×0ピクセルで画像に書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(0, 0, 400, 0, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(0, 0, 400, 0, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコードサイズは、400×134ピクセルです

1DバーコードはPatchCodeを除いてデフォルトのアスペクト比1/3をすべて持っています。そして、それは5のアスペクト比を持っています。

上記のすべてのモードでは、エンジンは、指定される幅値から、Xモジュールを計算します。結果値が無効である(インチのより小さい0.03)ならば、BarcodeExceptionCode.InvalidWidthまたはBarcodeExceptionCode.InvalidHeightへの型BarcodeException幅コード集合の例外はスローされます。

サンプル:UPC-Aバーコードを非常に小さい幅と高さ(10×10ピクセル)で画像に書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:code = BarcodeExceptionCode.InvalidWidthまたはBarcodeExceptionCode.InvalidHeightによるBarcodeExceptionは、スローされます。

Xモジュールによる1Dバーコード

このモードでは、特定のXモジュール値を使います。これを達成するには、「Xモジュールを使用」プロパティ値をTrueに設定します

サンプル:UPC-AバーコードをXモジュール = 0.03インチで画像に書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(0, 0, 0, 0, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Use X Module
             writeOptions.UseXModule = True
             writeOptions.XModule = 30
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(0, 0, 0, 0, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Use X Module
             writeOptions.UseXModule = true;
             writeOptions.XModule = 30;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコード幅は、データ(多くのバーと必要とされるスペース、テキストオプションなど)のサイズによって決定されます。高さは、シンボルの優先アスペクト比に基づいて計算されます。

Xモジュールを使用するとき、幅または高さ(両方ともまたは設定されたものは0まで他を評価して、そのままにします)を指定します。この場合は、この領域がバーコードの最大の幅と高さとして使用されます。作成されたバーコードの幅または高さが指定した値よりも大きい場合は、例外コードがBarcodeExceptionCode.InvalidWidthに設定されるBarcodeException幅またはBarcodeExceptionCode.InvalidHeightに設定された型の例外がスローされます。

サンプル:UPC-Aバーコードを、Xモジュール = 0.03インチと非常に狭い領域を指定して画像に書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Use X Module
             writeOptions.UseXModule = True
             writeOptions.XModule = 30
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Use X Module
             writeOptions.UseXModule = true;
             writeOptions.XModule = 30;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:code = BarcodeExceptionCode.InvalidWidthまたはBarcodeExceptionCode.InvalidHeightによるBarcodeExceptionは、スローされます。

1Dバーコード場所

1Dバーコードを書き込むときは、BarcodeData.Boundsの左上位置のみが使用されます。

サンプル:400×100の左上100、200のpositionとサイズでimageの上でUPC-Aバーコードを書き込みます。ピクセルのすべて。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(100, 200, 400, 100, LogicalUnit.Pixel)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(100, 200, 400, 100, LogicalUnit.Pixel);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:(100, 200)の位置に400×100ピクセルのサイズのバーコードが描画されます。

BarcodeData.Boundsプロパティは、型LogicalRectangleです。これは、ピクセル以外の場所とサイズと単位を指定することができます。

サンプル:UPC-Aバーコードを左1インチ、上2インチの位置に3×1インチのサイズで書き込みます。

[Visual Basic]


             Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA)
             data.Bounds = New LogicalRectangle(1, 2, 3, 1, LogicalUnit.Inch)
             Dim writeOptions As OneDBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), OneDBarcodeWriteOptions)
             ' Make sure X Module is disabled
             writeOptions.UseXModule = False
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             BarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.UPCA);
             data.Bounds = new LogicalRectangle(1, 2, 3, 1, LogicalUnit.Inch);
             OneDBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as OneDBarcodeWriteOptions;
             // Make sure X Module is disabled
             writeOptions.UseXModule = false;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:(1, 2)インチの位置に3×1インチのサイズのバーコードが描画されます。

2Dバーコード

以下のプロパティは、このセクションで論じられます:

すべての2Dバーコード書込み操作は、Xモジュールを必要とします。BarcodeData.Boundsの幅と高さが、バーコードの全幅と高さとして使われるだけです。

サンプル:幅と高さを指定することなくを使用してQRを書き込みます。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
             data.Bounds = New LogicalRectangle(0, 0, 0, 0, LogicalUnit.Pixel)
             Dim writeOptions As QRBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), QRBarcodeWriteOptions)
             ' Set X Module
             writeOptions.XModule = 30
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
             data.Bounds = new LogicalRectangle(0, 0, 0, 0, LogicalUnit.Pixel);
             QRBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as QRBarcodeWriteOptions;
             // Set X Module
             writeOptions.XModule = 30;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:Xモジュールから計算されたサイズ(この例では約1インチ)のバーコードが描画されます。

ほとんどの2Dバーコードでは、幅と高さのアスペクト比が厳格に規定されています。たとえば、QRバーコードは正方形にする(幅と高さを同じにする)必要があります。そのため、これらの値はバーコードの最大の幅と高さとしてのみ使用されます。作成されたバーコードの幅または高さが指定した値よりも大きい場合は、例外コードがBarcodeException(幅をBarcodeExceptionCode.InvalidWidthに設定する)またはBarcodeExceptionCode.InvalidHeightに設定された型の例外がスローされます。

サンプル:XModuleによるimage =あまりに小さいインチと境界の0.03本でQRバーコードを書き込みます。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
             data.Bounds = New LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel)
             Dim writeOptions As QRBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), QRBarcodeWriteOptions)
             ' Use default XModule, it is 30
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
             data.Bounds = new LogicalRectangle(0, 0, 10, 10, LogicalUnit.Pixel);
             QRBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as QRBarcodeWriteOptions;
             // Use default XModule, it is 30
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:code = BarcodeExceptionCode.InvalidWidthまたはBarcodeExceptionCode.InvalidHeightによるBarcodeExceptionは、スローされます。

いずれの2Dバーコードも、配置値をサポートします。これを使用して、バーコードを領域内のどこに書き込むかを制御できます。

サンプル:imageの最中にQRバーコードを書き込みます。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
             ' Use all the image
             data.Bounds = New LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel)
             Dim writeOptions As QRBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), QRBarcodeWriteOptions)
             ' Align the barcode in the middle horizontally and vertically
             writeOptions.HorizontalAlignment = BarcodeAlignment.Center
             writeOptions.VerticalAlignment = BarcodeAlignment.Center
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
             // Use all the image
             data.Bounds = new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel);
             QRBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as QRBarcodeWriteOptions;
             // Align the barcode in the middle horizontally and vertically
             writeOptions.HorizontalAlignment = BarcodeAlignment.Center;
             writeOptions.VerticalAlignment = BarcodeAlignment.Center;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコードが画像の中央に配置されます。

サンプル:imageの右下隅で、QRバーコードを書き込みます。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
             ' Use all the image
             data.Bounds = New LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel)
             Dim writeOptions As QRBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), QRBarcodeWriteOptions)
             ' Align the barcode in bottom corner
             writeOptions.HorizontalAlignment = BarcodeAlignment.Far
             writeOptions.VerticalAlignment = BarcodeAlignment.Far
             barcodeWriter.WriteBarcode(image, data, writeOptions)
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
             // Use all the image
             data.Bounds = new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel);
             QRBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as QRBarcodeWriteOptions;
             // Align the barcode in bottom corner
             writeOptions.HorizontalAlignment = BarcodeAlignment.Far;
             writeOptions.VerticalAlignment = BarcodeAlignment.Far;
             barcodeWriter.WriteBarcode(image, data, writeOptions);
             

結果:バーコードが画像の右下隅に配置されます。

PDF417とMicroPDF417バーコードは、「シンボル」のアスペクト比を設定することができます。これは、任意の水平および垂直のサイズでバーコードを作成することができます。PDF417BarcodeWriteOptions.XModuleAspectRatioとMicroPDF417BarcodeWriteOptions.XModuleAspectRatioを参照してください

バーコードサイズを計算すること

BarcodeWriterクラスは、指定されるオプションに基づくバーコードサイズを計算することができるCalculateBarcodeDataBoundsメソッドを格納します。

サンプル:QRバーコードのサイズをXモジュール = 0.03で計算します。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
             ' It does not matter what the value of data.Bounds is. It will be changed
             Dim writeOptions As QRBarcodeWriteOptions = DirectCast(barcodeWriter.GetDefaultOptions(data.Symbology), QRBarcodeWriteOptions)
             ' Set X Module
             writeOptions.XModule = 30
             ' Calculate the size in pixels if written to this image
             barcodeWriter.CalculateBarcodeDataBounds(New LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalRectangle.Empty), image.XResolution, image.YResolution, data, writeOptions)
             Console.WriteLine("{0} by {1} pixels", data.Bounds.Width, data.Bounds.Height)
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
             // It does not matter what the value of data.Bounds is. It will be changed
             QRBarcodeWriteOptions writeOptions = barcodeWriter.GetDefaultOptions(data.Symbology) as QRBarcodeWriteOptions;
             // Set X Module
             writeOptions.XModule = 30;
             // Calculate the size in pixels if written to this image
             barcodeWriter.CalculateBarcodeDataBounds(new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalRectangle.Empty), image.XResolution, image.YResolution, data, writeOptions);
             Console.WriteLine("{0} by {1} pixels", data.Bounds.Width, data.Bounds.Height);
             

結果:300DPIの画像の場合、結果は261×261ピクセルになります。

バーコードサイズの計算は、すべてのバーコードに対して(1Dであるか2Dであるかを問わず)、どのようなオプションが指定されていても(Xモジュールが指定されていても、されていなくても)機能します。

バーコードサイズには、規格によって規定されたバーコード周囲のパディング領域が含まれる場合があります。

サンプル:QRのためのTIFファイルオブジェクトを作成します。

[Visual Basic]


             Dim data As QRBarcodeData = DirectCast(BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR), QRBarcodeData)
            
             ' We will use default options throughout this example
            
             ' Calculate the barcode size in pixels at 300 DPI
             Dim resolution As Integer = 300
             barcodeWriter.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, Nothing)
            
             ' Create a RasterImage object with this size
             Dim boundsPixels As LeadRect = data.Bounds.ToRectangle(resolution, resolution)
            
             Using image As New RasterImage(RasterMemoryFlags.Conventional, boundsPixels.Width, boundsPixels.Height, 1, RasterByteOrder.Rgb, RasterViewPerspective.TopLeft, Nothing, IntPtr.Zero, 0)
                ' Set the resolution
                image.XResolution = resolution
                image.YResolution = resolution
            
                ' Fill it with white
                Dim cmd As New Leadtools.ImageProcessing.FillCommand(RasterColor.FromKnownColor(RasterKnownColor.White))
                cmd.Run(image)
            
                ' Write the barcode to the image
               barcodeWriter.WriteBarcode(image, data, Nothing)
            
               ' Save it as TIF
                Using codecs As New RasterCodecs()
                  codecs.Save(image, "C:\Users\Public\Documents\LEADTOOLS Images\MyQR.tif", RasterImageFormat.Tif, 1)
                End Using
             End Using
             

[C#]


             QRBarcodeData data = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;
            
             // We will use default options through this example
            
             // Calculate the barcode size in pixels at 300 DPI
             int resolution = 300;
             barcodeWriter.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, null);
            
             // Create a RasterImage object with this size
             LeadRect boundsPixels = data.Bounds.ToRectangle(resolution, resolution);
            
             using(RasterImage image = new RasterImage(RasterMemoryFlags.Conventional, boundsPixels.Width, boundsPixels.Height, 1, RasterByteOrder.Rgb, RasterViewPerspective.TopLeft, null, IntPtr.Zero, 0))
             {
                // Set the resolution
                image.XResolution = resolution;
                image.YResolution = resolution;
            
                // Fill it with white
                new Leadtools.ImageProcessing.FillCommand(RasterColor.FromKnownColor(RasterKnownColor.White)).Run(image);
            
                // Write the barcode to the image
                barcodeWriter.WriteBarcode(image, data, null);
            
                // Save it as TIF
                using(RasterCodecs codecs = new RasterCodecs())
                {
                   codecs.Save(image, @"C:\Users\Public\Documents\LEADTOOLS Images\MyQR.tif", RasterImageFormat.Tif, 1);
                }
             }
             

結果:QRバーコードのTIF image

必要であるならば、必要ならば正確なピクセルサイズに上のサンプルでimageの大きさを変更することができます。たとえば、300×300ピクセルであるQRバーコードを持っていて、imageを保存する前に、以下のcodeを追加すること:

[Visual Basic]


             Dim cmd As New SizeCommand(300, 300, RasterSizeFlags.Bicubic)
             cmd.Run(image)
             

[C#]


             SizeCommand cmd = new SizeCommand(300, 300, RasterSizeFlags.Bicubic);
             cmd.Run(image);
             

注意:ほとんどのバーコード規格では、バーコードの周囲に特定のサイズのパディング領域を設けるよう規定されています。たとえばQRコードでは、1シンボルサイズ(Xモジュール)のパディング領域が必要です。LEADTOOLSは、バーコードのサイズを書き込むか、計算するとき、常にこのパディングを追加します。