LEADTOOLSバーコード(Leadtools.Barcodeアセンブリ)

フレームを表示

PatchCodeBarcodeReadOptionsクラス








メンバ 
Patch Codeバーコードを読むとき、使う追加のオプションを格納します。
オブジェクトモデル
構文
[TypeConverterAttribute()]
[SerializableAttribute()]
public class PatchCodeBarcodeReadOptions : BarcodeReadOptions, System.ICloneable  
'Declaration
 
<TypeConverterAttribute()>
<SerializableAttribute()>
Public Class PatchCodeBarcodeReadOptions 
   Inherits BarcodeReadOptions
   Implements System.ICloneable 
'Usage
 
Dim instance As PatchCodeBarcodeReadOptions
public sealed class PatchCodeBarcodeReadOptions : System.ICloneable  
@interface LTPatchCodeBarcodeReadOptions : LTBarcodeReadOptions
public class PatchCodeBarcodeReadOptions extends BarcodeReadOptions
function Leadtools.Barcode.PatchCodeBarcodeReadOptions()
[TypeConverterAttribute()]
[SerializableAttribute()]
public ref class PatchCodeBarcodeReadOptions : public BarcodeReadOptions, System.ICloneable  
解説

PatchCodeBarcodeReadOptionsクラスは、LEADTOOLSを用いてPatch Codeバーコードを読むとき、オプションを制御するのに用いられます。オプションの設定方法は2通りあります。

BarcodeReaderクラスには、各バーコード体系(または共通バーコード体系のグループ)のデフォルトオプションが含まれます。これらのオプションを取得するには、以下のいずれかを渡してBarcodeReader.GetDefaultOptionsメソッドを呼び出します。

そして、BarcodeReadOptionsからPatchCodeBarcodeReadOptionsまでそれをキャストすることによって、返されたPatchCodeBarcodeReadOptionsのメンバを変更します。

PatchCodeBarcodeReadOptionsクラスのインスタンスも作成して、BarcodeReader.ReadBarcodeと入力パラメータとしてシングルまたはオプションの配列を受け取るBarcodeReader.ReadBarcodesメソッドでも直接それを使います。

ベースBarcodeReadOptionsのメンバとその機能を以下に示します。

メンバ 説明
BarcodeReadOptions.ForeColor

カラー画像からバーコードを読むとき、使うバーコード前景色(バーまたはシンボルのカラー)を制御します。

BarcodeReadOptions.BackColor

カラー画像からバーコードを読むとき、使うバーコード背景色(スペースのカラー)を制御します。

BarcodeReadOptions.LoadBarcodeReadOptions.Save

保存するか、XMLファイルまたはストリームへ/からオプションをロードするのに用いられることができます。

BarcodeReadOptions.GetSupportedSymbologies

このクラスは、以下のバーコード体系を格納している配列を返すために、ベースクラスメソッドをオーバーライドします:BarcodeSymbology.PatchCode

機能とメンバに加えて、PatchCodeBarcodeReadOptionsはこれらのPatch Codeバーコードに特有の機能を格納します:

メンバ 説明
SearchDirection

バーコードの検索時に使用する方向(水平、垂直、またはその両方)。

データの塊

バーコードの読み取り時にスキップする列あたりのスキャンライン数

サンプル

このサンプルは書きます、そして、Patch Codeはimageへ/からバーコード化します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

      
Public Sub PatchCodeBarcode_Example()
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "MyPatchCodeBarcode.tif")
   Dim engine As New BarcodeEngine()

   ' Create the image to write the barcodes to
   Dim resolution As Integer = 300
   Using image As RasterImage = RasterImage.Create(CType(8.5 * resolution, Integer), CType(11.0 * resolution, Integer), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))
      ' Write two PatchCode barcodes
      WriteBarcode(engine.Writer, image, "1100")

      ' Save the image
      Using codecs As New RasterCodecs()
         codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1)
      End Using
   End Using

   ' Now read the barcodes again
   Using codecs As New RasterCodecs()
      Using image As RasterImage = codecs.Load(imageFileName)
         ' Read the PatchCode barcode
         ReadBarcode(engine.Reader, image)
      End Using
   End Using
End Sub

Private Sub WriteBarcode(ByVal writer As BarcodeWriter, ByVal image As RasterImage, ByVal value As String)
   ' Create the barcode data
   Dim barcode As New BarcodeData(BarcodeSymbology.PatchCode, value)

   ' Set the write options
   Dim options As New PatchCodeBarcodeWriteOptions()
   ' Use X Module when writing the barcode
   options.UseXModule = True
   options.XModule = 30

   ' Usually PatchCodes are centered in the middle of the page and take the whole height

   ' Calculate its size
   writer.CalculateBarcodeDataBounds(New LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel), image.XResolution, image.YResolution, barcode, options)

   ' Position it
   Dim pixels As LeadRect = barcode.Bounds.ToRectangle(image.XResolution, image.YResolution)
   pixels.X = (image.ImageWidth - pixels.Width) \ 2
   pixels.Y = 0
   pixels.Height = image.ImageHeight
   barcode.Bounds = New LogicalRectangle(pixels)

   ' Write it
   Console.WriteLine("Writing barcode with Data: {0}", value)
   writer.WriteBarcode(image, barcode, options)
End Sub

Private Sub ReadBarcode(ByVal reader As BarcodeReader, ByVal image As RasterImage)
   ' Setup read options
   Dim options As New PatchCodeBarcodeReadOptions()
   options.SearchDirection = BarcodeSearchDirection.Horizontal
   options.Granularity = 9

   Console.WriteLine("Reading PatchCode barcode")
   Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.PatchCode, options)
   If Not IsNothing(barcode) Then
      Console.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value)
   Else
      Console.WriteLine(" Not found")
   End If
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 PatchCodeBarcode_Example()
{
   string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyPatchCodeBarcode.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 PatchCode barcodes
      WriteBarcode(engine.Writer, image, "1100");

      // 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 PatchCode barcode
         ReadBarcode(engine.Reader, image);
      }
   }
}

private void WriteBarcode(BarcodeWriter writer, RasterImage image, string value)
{
   // Create the barcode data
   BarcodeData barcode = new BarcodeData(BarcodeSymbology.PatchCode, value);

   // Set the write options
   PatchCodeBarcodeWriteOptions options = new PatchCodeBarcodeWriteOptions();
   // Use X Module when writing the barcode
   options.UseXModule = true;
   options.XModule = 30;

   // Usually PatchCodes are centered in the middle of the page and take the whole height

   // Calculate its size
   writer.CalculateBarcodeDataBounds(new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel), image.XResolution, image.YResolution, barcode, options);

   // Position it
   LeadRect pixels = barcode.Bounds.ToRectangle(image.XResolution, image.YResolution);
   pixels.X = (image.ImageWidth - pixels.Width) / 2;
   pixels.Y = 0;
   pixels.Height = image.ImageHeight;
   barcode.Bounds = new LogicalRectangle(pixels);

   // Write it
   Console.WriteLine("Writing barcode with Data: {0}", value);
   writer.WriteBarcode(image, barcode, options);
}

private void ReadBarcode(BarcodeReader reader, RasterImage image)
{
   // Setup read options
   PatchCodeBarcodeReadOptions options = new PatchCodeBarcodeReadOptions();
   options.SearchDirection = BarcodeSearchDirection.Horizontal;
   options.Granularity = 9;

   Console.WriteLine("Reading PatchCode barcode");
   BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.PatchCode, 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:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;

      
public async Task PatchCodeBarcode_Example()
{
   string imageFileName = @"MyPatchCodeBarcode.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, RasterColorHelper.FromKnownColor(RasterKnownColor.White)))
   {
      // Write two PatchCode barcodes
      WriteBarcode(engine.Writer, image, "1100");

      // Save the image
      using(RasterCodecs codecs = new RasterCodecs())
      {
         StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(imageFileName);
         await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.CcittGroup4, 1);
      }
   }

   // Now read the barcodes again
   using(RasterCodecs codecs = new RasterCodecs())
   {
      StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(imageFileName);
      using(RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)))
      {
         // Read the PatchCode barcode
         ReadBarcode(engine.Reader, image);
      }
   }
}

private void WriteBarcode(BarcodeWriter writer, RasterImage image, string value)
{
   // Create the barcode data
   BarcodeData barcode = new BarcodeData(BarcodeSymbology.PatchCode, value);

   // Set the write options
   PatchCodeBarcodeWriteOptions options = new PatchCodeBarcodeWriteOptions();
   // Use X Module when writing the barcode
   options.UseXModule = true;
   options.XModule = 30;

   // Usually PatchCodes are centered in the middle of the page and take the whole height

   // Calculate its size
   writer.CalculateBarcodeDataBounds(LeadRectHelper.Create(0, 0, image.ImageWidth, image.ImageHeight), image.XResolution, image.YResolution, barcode, options);

   // Position it
   LeadRect pixels = barcode.Bounds;
   pixels.X = (image.ImageWidth - pixels.Width) / 2;
   pixels.Y = 0;
   pixels.Height = image.ImageHeight;
   barcode.Bounds = pixels;

   // Write it
   Debug.WriteLine("Writing barcode with Data: {0}", value);
   writer.WriteBarcode(image, barcode, options);
}

private void ReadBarcode(BarcodeReader reader, RasterImage image)
{
   // Setup read options
   PatchCodeBarcodeReadOptions options = new PatchCodeBarcodeReadOptions();
   options.SearchDirection = BarcodeSearchDirection.Horizontal;
   options.Granularity = 9;

   Debug.WriteLine("Reading PatchCode barcode");
   BarcodeData barcode = reader.ReadBarcode(image, LeadRectHelper.Empty, BarcodeSymbology.PatchCode, options);
   if(barcode != null)
   {
      Debug.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value);
   }
   else
   {
      Debug.WriteLine(" Not found");
   }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
using Leadtools.Examples;

public void PatchCodeBarcode_Example(RasterImage image, Stream outStream)
{
   BarcodeEngine engine = new BarcodeEngine();
   // Create the image to write the barcodes to
   RasterCodecs codecs = new RasterCodecs();

   // Write two PatchCode barcodes
   WriteBarcode(engine.Writer, image, "1100");

   // Save the image
   codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1);

   // Now read the barcodes again
   ReadBarcode(engine.Reader, image);
}

private void WriteBarcode(BarcodeWriter writer, RasterImage image, string value)
{
   // Create the barcode data
   BarcodeData barcode = new BarcodeData(BarcodeSymbology.PatchCode, value);

   // Set the write options
   PatchCodeBarcodeWriteOptions options = new PatchCodeBarcodeWriteOptions();
   // Use X Module when writing the barcode
   options.UseXModule = true;
   options.XModule = 30;

   // Usually PatchCodes are centered in the middle of the page and take the whole height

   // Calculate its size
   writer.CalculateBarcodeDataBounds(new LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel), image.XResolution, image.YResolution, barcode, options);

   // Position it
   LeadRect pixels = barcode.Bounds.ToRectangle(image.XResolution, image.YResolution);
   pixels.X = (image.ImageWidth - pixels.Width) / 2;
   pixels.Y = 0;
   pixels.Height = image.ImageHeight;
   barcode.Bounds = new LogicalRectangle(pixels);

   // Write it
   Console.WriteLine("Writing barcode with Data: {0}", value);
   writer.WriteBarcode(image, barcode, options);
}

private void ReadBarcode(BarcodeReader reader, RasterImage image)
{
   // Setup read options
   PatchCodeBarcodeReadOptions options = new PatchCodeBarcodeReadOptions();
   options.SearchDirection = BarcodeSearchDirection.Horizontal;
   options.Granularity = 9;

   Console.WriteLine("Reading PatchCode barcode");
   BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.PatchCode, options);
   if(barcode != null)
   {
      Console.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value);
   }
   else
   {
      Console.WriteLine(" Not found");
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

Public Sub PatchCodeBarcode_Example(ByVal image As RasterImage, ByVal outStream As Stream)
  Dim engine As BarcodeEngine = New BarcodeEngine()
  ' Create the image to write the barcodes to
  Dim codecs As RasterCodecs = New RasterCodecs()

  ' Write two PatchCode barcodes
  WriteBarcode(engine.Writer, image, "1100")

  ' Save the image
  codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1)

  ' Now read the barcodes again
  ReadBarcode(engine.Reader, image)
End Sub

Private Sub WriteBarcode(ByVal writer As BarcodeWriter, ByVal image As RasterImage, ByVal value As String)
  ' Create the barcode data
  Dim barcode As BarcodeData = New BarcodeData(BarcodeSymbology.PatchCode, value)

  ' Set the write options
  Dim options As PatchCodeBarcodeWriteOptions = New PatchCodeBarcodeWriteOptions()
  ' Use X Module when writing the barcode
  options.UseXModule = True
  options.XModule = 30

  ' Usually PatchCodes are centered in the middle of the page and take the whole height

  ' Calculate its size
  writer.CalculateBarcodeDataBounds(New LogicalRectangle(0, 0, image.ImageWidth, image.ImageHeight, LogicalUnit.Pixel), image.XResolution, image.YResolution, barcode, options)

  ' Position it
  Dim pixels As LeadRect = barcode.Bounds.ToRectangle(image.XResolution, image.YResolution)
  pixels.X = (image.ImageWidth - pixels.Width) / 2
  pixels.Y = 0
  pixels.Height = image.ImageHeight
  barcode.Bounds = New LogicalRectangle(pixels)

  ' Write it
  Console.WriteLine("Writing barcode with Data: {0}", value)
  writer.WriteBarcode(image, barcode, options)
End Sub

Private Sub ReadBarcode(ByVal reader As BarcodeReader, ByVal image As RasterImage)
  ' Setup read options
  Dim options As PatchCodeBarcodeReadOptions = New PatchCodeBarcodeReadOptions()
  options.SearchDirection = BarcodeSearchDirection.Horizontal
  options.Granularity = 9

  Console.WriteLine("Reading PatchCode barcode")
  Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.PatchCode, options)
  If Not barcode Is Nothing Then
    Console.WriteLine(" At {0}, data: {1}", barcode.Bounds, barcode.Value)
  Else
    Console.WriteLine(" Not found")
  End If
End Sub
必要条件

ターゲットプラットホーム

参照

参照

PatchCodeBarcodeReadOptionsメンバ
Leadtools.Barcode名前空間
BarcodeDataクラス
BarcodeReaderクラス
BarcodeSymbology列挙体
BarcodeEngineクラス
BarcodeReader.ReadBarcode
BarcodeReader.ReadBarcodes
LEADTOOLSバーコードによるプログラミング
サポートされているバーコード体系
バーコードサポートのロック解除
読み取りバーコードチュートリアル
LEADTOOLSのUSPSと4-状態バーコード

Leadtools.Barcodeは、バーコードモジュールのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能