LEADTOOLS MRC(Leadtools.Mrcアセンブリ)

フレームを表示

SaveBitmapListメソッド






MrcSegmenterオブジェクトのリスト。
保存されるイメージのリスト。
出力ファイル名。
ファイルフォーマットを出力します。
ファイルを保存するとき、使う圧縮情報を格納する構造体。
標準の専用T44であるMRC LEADまたはPDF形式を使用して、画像ファイルに格納されているMRC画像をファイルに保存します。
構文
public static void SaveBitmapList( 
   List<MrcSegmenter> segmenters,
   List<RasterImage> images,
   string fileName,
   MrcImageListFormat format,
   MrcCompressionOptions options
)
'Declaration
 
Public Shared Sub SaveBitmapList( _
   ByVal segmenters As List(Of MrcSegmenter), _
   ByVal images As List(Of RasterImage), _
   ByVal fileName As String, _
   ByVal format As MrcImageListFormat, _
   ByVal options As MrcCompressionOptions _
) 
'Usage
 
Dim segmenters As List(Of MrcSegmenter)
Dim images As List(Of RasterImage)
Dim fileName As String
Dim format As MrcImageListFormat
Dim options As MrcCompressionOptions
 
MrcSegmenter.SaveBitmapList(segmenters, images, fileName, format, options)

            

            
public:
static void SaveBitmapList( 
   List<MrcSegmenter^>^ segmenters,
   List<RasterImage^>^ images,
   String^ fileName,
   MrcImageListFormat format,
   MrcCompressionOptions options
) 

パラメーター

割体
MrcSegmenterオブジェクトのリスト。
イメージ
保存されるイメージのリスト。
fileName
出力ファイル名。
形式
ファイルフォーマットを出力します。
オプション
ファイルを保存するとき、使う圧縮情報を格納する構造体。
解説
このメソッドはDocument/Medicalツールキットで利用できます。

:としてイメージのリストを保存するために、このメソッドを使います 形式パラメーターがMrcT44TifまたはMrcTifに設定されるならば、*.TIFはデフォルトのファイル拡張子です。

形式パラメーターがMrcPdfに設定されるならば、*.PDFはデフォルトのファイル拡張子です。

そうしたいならば、規格基準T44サブタイプ形式、LEAD MRCサブタイプ形式またはPDFファイル(LEADセグメンテーション技術に基づく)付きのTIFファイルとしてイメージのリストを保存するために、このメソッドを使います: このメソッドによってサポートされるすべての形式は、複数ページのファイル(TIFまたはPDF)を生成します。ファイルの頁数は、リスト(より小さいものはどれでも)のイメージの数です。

SaveImageT44またはSaveImageのメソッドを使って、単一画像を保存するか、既存のTIFファイルに追加、挿入または上書きします。

このメソッドを呼び出す前にリストですべてのイメージのためにセグメンテーションを実行することは、最善です。セグメンテーションはSegmentImageメソッドを呼び出すことによって自動的に実行されることができるか、AddSegmentメソッドを呼び出すことによって、手動で実行されることができます。

このメソッドを使うとき、セグメントはMrcSegmentType列挙体値の任意の値でありえます。

SegmentImageメソッドは、T.44標準のNLS*モデルで定義されるように、レイヤ(マスク、背景と前景レイヤ)に、テキスト、グレースケールとピクチャセグメントをマップします。その領域で使われる色の数に応じて、セグメントは、テキスト、グレースケールまたはピクチャと分類されることができるimageの上の長方形の領域です。Mixed Raster Content(MRC)形式は、ITU-T推薦T.44の一部として国際電気通信連合によって開発されました。

オプションパラメーターが空の場合、メソッドはマスクレイヤー(1ビット)にはFax G4圧縮を、24一途画像セグメントにはJPEG圧縮を、Qファクターには2を、8ビットグレースケール画像にはJPEG圧縮でQファクターは2を、2ビットテキストと2ビットグレースケール画像にはJBIG圧縮を使用します。詳細については、「MrcCompressionOptions」を参照してください。Grayscale2BitCoderGrayscale8BitCoderMrcCompressionOptions構造体のGrayscale8BitFactorプロパティがMrcTif形式だけで使われることに注意すべきです。MrcCompressionOptions構造体のText2BitCoderプロパティが、MrcTifMrcPdf形式だけで使われます。詳細については、「LEADTOOLS MRCによるプログラミング」を参照してください。
サンプル
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Mrc

Private Function MrcListSegmentation(ByVal image As RasterImage) As MrcSegmenter
   Dim segmentImageOptions As MrcSegmentImageOptions = MrcSegmentImageOptions.Empty
   segmentImageOptions.CleanSize = 5
   segmentImageOptions.SegmentQuality = 50
   segmentImageOptions.ColorThreshold = 25
   segmentImageOptions.BackgroundThreshold = 10
   segmentImageOptions.CombineThreshold = 75
   segmentImageOptions.Flags = MrcSegmentImageFlags.FavorOneBit Or MrcSegmentImageFlags.SegmentWithBackground
   Dim backColor As RasterColor = New RasterColor(255, 255, 255)
   Dim foreColor As RasterColor = New RasterColor(0, 0, 0)
   Dim mrcSegmenter As MrcSegmenter = New MrcSegmenter(image, RasterColor.FromKnownColor(RasterKnownColor.White), RasterColor.FromKnownColor(RasterKnownColor.Black))
   mrcSegmenter.SegmentImage(image, segmentImageOptions)
   Return mrcSegmenter
End Function

<TestMethod()> _
Public Sub SaveBitmapListExample()
   ' Load an image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True
   Dim image1 As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "MRCSegmentation.mrc"))

   ' Load an image
   Dim image2 As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "MRCSegmentation.mrc"))

   Dim segmenter1 As MrcSegmenter = MrcListSegmentation(image1)
   Dim segmenter2 As MrcSegmenter = MrcListSegmentation(image2)
   Dim segmenter3 As MrcSegmenter = CType(segmenter2.Clone(), MrcSegmenter)
   Dim segmenterList As List(Of MrcSegmenter) = New List(Of MrcSegmenter)()

   segmenterList.Add(segmenter1)
   segmenterList.Add(segmenter2)
   segmenterList.Add(segmenter3)

   Dim segmenterArray As MrcSegmenter() = New MrcSegmenter(2) {}

   segmenterList.CopyTo(segmenterArray, 0)

   Dim imageList As List(Of RasterImage) = New List(Of RasterImage)()
   Dim index As Integer

   For index = 0 To 2
      If segmenterList.Contains(segmenterArray(index)) Then
         Select Case segmenterList.IndexOf(segmenterArray(index))
            Case 0
               imageList.Add(image1)
            Case 1
               imageList.Add(image2)
            Case 2
               ' Remove the last segmenter from the segmenter array...
               segmenterList.Remove(segmenterArray(index))
         End Select
      End If
   Next index
   Dim compressionOptions As MrcCompressionOptions = New MrcCompressionOptions()

   compressionOptions.MaskCoder = MrcMaskCompression.FaxG31D
   compressionOptions.PictureCoder = MrcPictureCompression.Jpeg
   compressionOptions.PictureQualityFactor = 10
   compressionOptions.Text2BitCoder = MrcTextCompression2BitCoder.Gif2Bit
   compressionOptions.Grayscale2BitCoder = MrcGrayscaleCompression2BitCoder.Jbig2
   compressionOptions.Grayscale8BitCoder = MrcGrayscaleCompression8BitCoder.GrayscaleCmw
   compressionOptions.Grayscale8BitFactor = 2

   ' Save the two segmenters
   MrcSegmenter.SaveBitmapList(segmenterList, imageList, Path.Combine(LEAD_VARS.ImagesDir, "SaveBitmapListResult.mrc"), MrcImageListFormat.MrcTif, compressionOptions)
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.Mrc;

private MrcSegmenter MrcListSegmentation(RasterImage image)
{
   MrcSegmentImageOptions segmentImageOptions = MrcSegmentImageOptions.Empty;
   segmentImageOptions.CleanSize = 5;
   segmentImageOptions.SegmentQuality = 50;
   segmentImageOptions.ColorThreshold = 25;
   segmentImageOptions.BackgroundThreshold = 10;
   segmentImageOptions.CombineThreshold = 75;
   segmentImageOptions.Flags = MrcSegmentImageFlags.FavorOneBit | MrcSegmentImageFlags.SegmentWithBackground;
   RasterColor backColor = new RasterColor(255, 255, 255);
   RasterColor foreColor = new RasterColor(0, 0, 0);

   MrcSegmenter mrcSegmenter = new MrcSegmenter(image, RasterColor.FromKnownColor(RasterKnownColor.White), RasterColor.FromKnownColor(RasterKnownColor.Black));
   mrcSegmenter.SegmentImage(image, segmentImageOptions);
   return mrcSegmenter;
}

[TestMethod]
public void SaveBitmapListExample()
{
   // Load an image
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   RasterImage image1 = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"MRCSegmentation.mrc"));

   // Load an image
   RasterImage image2 = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"MRCSegmentation.mrc"));

   MrcSegmenter segmenter1 = MrcListSegmentation(image1);
   MrcSegmenter segmenter2 = MrcListSegmentation(image2);
   MrcSegmenter segmenter3 = (MrcSegmenter) segmenter2.Clone();
   List<MrcSegmenter> segmenterList = new List<MrcSegmenter>();

   segmenterList.Add(segmenter1);
   segmenterList.Add(segmenter2);
   segmenterList.Add(segmenter3);

   MrcSegmenter[] segmenterArray = new MrcSegmenter[3];

   segmenterList.CopyTo(segmenterArray, 0);

   List<RasterImage> imageList = new List<RasterImage>();
   int index;

   for(index = 0 ; index < 3; index++)
   {
      if (segmenterList.Contains(segmenterArray[index]))
      {
         switch (segmenterList.IndexOf(segmenterArray[index]))
         {
            case 0:
               imageList.Add(image1);
               break;
            case 1:
               imageList.Add(image2);
               break;
            case 2:
               // Remove the last segmenter from the segmenter array...
               segmenterList.Remove(segmenterArray[index]);
               break;
         }
      }
   }
   MrcCompressionOptions compressionOptions = new MrcCompressionOptions();

   compressionOptions.MaskCoder = MrcMaskCompression.FaxG31D;
   compressionOptions.PictureCoder = MrcPictureCompression.Jpeg;
   compressionOptions.PictureQualityFactor = 10;
   compressionOptions.Text2BitCoder = MrcTextCompression2BitCoder.Gif2Bit;
   compressionOptions.Grayscale2BitCoder = MrcGrayscaleCompression2BitCoder.Jbig2;
   compressionOptions.Grayscale8BitCoder = MrcGrayscaleCompression8BitCoder.GrayscaleCmw;
   compressionOptions.Grayscale8BitFactor = 2;

   // Save the two segmenters
   MrcSegmenter.SaveBitmapList(segmenterList, imageList,Path.Combine(LEAD_VARS.ImagesDir,"SaveBitmapListResult.mrc"), MrcImageListFormat.MrcTif, compressionOptions);
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
必要条件

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

参照

参照

MrcSegmenterクラス
MrcSegmenterメンバ
SegmentImageメソッド
SaveImageメソッド
SaveImageT44メソッド
LoadImageメソッド
GetPagesCountメソッド
Saveメソッド

Leadtools.Mrcは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能