SaveBitmapList Method
Summary
Saves MRC images contained in an image list to a file using the MRC LEAD, standard Proprietary T44 or PDF format.
Syntax
Parameters
segmenters
List of MrcSegmenter objects.
images
List of images to be saved.
fileName
Output file name.
options
Structure that contains the compression information to use when saving the file.
Example
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;
}
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";
}