Loading and Saving Images

Powerful, but Easy to Use

LEADTOOLS provides many options when loading and saving image files. Nevertheless, the code can be as simple as the following, which loads a LEAD compressed file and saves it as a Windows BMP file:

C#
// Create a new instance of the RasterCodecs class 
Leadtools.Codecs.RasterCodecs codecs = new Leadtools.Codecs.RasterCodecs(); 
// Load an image at its own bits per pixel 
Leadtools.RasterImage image = codecs.Load( 
   @"Test.cmp", 
   0, 
   Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 
   1, 
   1); 
// Save the image as a 24-bit Windows BMP file 
codecs.Save( 
   image, 
   @"Test.bmp", 
   Leadtools.RasterImageFormat.Bmp, 
   24, 
   1, 
   1, 
   1, 
   Leadtools.Codecs.CodecsSavePageMode.Overwrite); 
// Dispose of the objects we created 
image.Dispose(); 
codecs.Dispose(); 

VB
' Create a new instance of the RasterCodecs class 
Dim codecs As New Leadtools.Codecs.RasterCodecs() 
' Load an image at its own bits per pixel 
Dim image As Leadtools.RasterImage = codecs.Load( _ 
   "Test.cmp", _ 
   0, _ 
   Leadtools.Codecs.CodecsLoadByteOrder.Bgr, _ 
   1, _ 
   1) 
' Save the image as a 24-bit Windows BMP file 
codecs.Save( _ 
   image, _ 
   "Test.bmp", _ 
   Leadtools.RasterImageFormat.Bmp, _ 
   24, _ 
   1, _ 
   1, _ 
   1, _ 
   Leadtools.Codecs.CodecsSavePageMode.Overwrite) 
' Dispose of the objects we created 
image.Dispose() 
codecs.Dispose() 

Java
// Create a new instance of the RasterCodecs class  
leadtools.codecs.RasterCodecs codecs = new leadtools.codecs.RasterCodecs(); 
// Load an image at its own bits per pixel 
leadtools.RasterImage image = codecs.load( 
   "Test.cmp", 
   0, 
   leadtools.codecs.CodecsLoadByteOrder.BGR, 
   1, 
   1); 
// Save the image as a 24-bit Windows BMP file 
codecs.save( 
   image, 
   "Test.bmp", 
   leadtools.RasterImageFormat.BMP, 
   24, 
   1, 
   1, 
   1, 
   leadtools.codecs.CodecsSavePageMode.OVERWRITE); 
// Dispose of the objects we created  
image.dispose(); 
codecs.dispose(); 

Super Compressed Image Data

LEADTOOLS supports super compressed image data. Only 1-bit and 24-bit images can be kept super compressed in memory. For more information, refer to Super Compressed Images.

Color Depth

Regardless of current system display color depth, an image can be loaded and manipulated at its native color depth and then displayed. LEADTOOLS can automatically adjust to the display device without changing the image data. An image can also be converted to a specific color depth (bits per pixel) as it is loaded or saved. To learn more about how to convert while loading or saving, refer to Conversion Considerations.

File Information Before Loading

Whether an image file is on disk or in memory, LEADTOOLS can provide information about the image before loading it. LEADTOOLS can also provide file-format-specific information, such as the page number or physical resolution. The following topics provide more information about specific file formats:

The FastFileInfo provides functionality to determine if a file will be rejected if the signature does not match one of the known file format signatures. As a result, the file filter codecs will not be unnecessarily loaded and called.

Feed Load (Streaming Data)

LEADTOOLS provides a mechanism to load image data as it is supplied (streamed). For more information, refer to the RasterCodecs.StartFeedLoad, RasterCodecs.FeedLoad, and RasterCodecs.StopFeedLoad methods.

Resize During Load

The desired width and height can be passed to the Load method to resize the image to new dimensions as it is loaded.

T44 File Format

The MrcSegmenter.LoadImage method loads files saved as the LEAD Proprietary T44 Format or Standard T44 Format.

Headerless Raw and Fax Image Data

Headerless raw and fax image-data type files can be loaded and saved using the Raw filter codec (Leadtools.Codecs.Raw.dll).

Process Image as it is Saved

The SaveImage event provides facilitates additional processing of the saved file.

Regions of Interest

Regions are automatically saved inside TIFF files. For more information, refer to Saving a Region. Note, however, that the functionality to save a region inside a TIFF file requires a Document Imaging or Medical Imaging toolkit.

Window Leveling

Window-leveling converts extended grayscale (12 or 16-bit) image data to 8-bit grayscale or 24-bit RGB image data. Only TIFF and DICOM file formats are capable of storing extended grayscale image data. For more information, refer to Saving Window-Leveled Images.

CMYK Image Data

LEADTOOLS supports loading TIFF CMYK files without converting the data to BGR. This is done by loading each CMYK plane as a separate page in an Image using LoadCmykPlanes. To save the planes as TIFF CMYK, call SaveCmykPlanes. For more information, refer to Handling CMYK Files as Separate Images.

Color Reduction

Dithering

Whenever an image's color depth is reduced to 8-bits per pixel or less, a dithering method may come into play. One alternative is to use a nearest-color match (no dithering), which means that the color of each pixel is changed to the palette color that most closely matches it. If the original image contains subtle color details, the result of a nearest-color match may have large blotches of color that are not very pleasing.

Dithering methods create the appearance of more subtle shades by mixing in pixels of different colors. This is similar to the way newspaper pictures produce the appearance of shades of gray, even though the only actual colors are only black and white.

To enable dithering, you must set the dithering method inside the RasterImage to the required value and then instruct RasterCodecs to use this value when saving the image. The following example will load a 24-bpp image and save it as bitonal with and without dithering.

How to Control Dithering During Save

C#
private static void Test(RasterCodecs codecs, string coloredImageFileName) 
{ 
   // RasterCodecs.Options.Save.UseImageDitheringMethod is false by default 
             
   RasterImage image = codecs.Load(coloredImageFileName); 
   // Save it with no dithering options 
   codecs.Save(image, @"C:\NotDithered.tif", RasterImageFormat.CcittGroup4, 1); 
             
   // Change the image dithering method to FloydStein 
   image.DitheringMethod = RasterDitheringMethod.FloydStein; 
   // Use the image dithering method when saving 
   codecs.Options.Save.UseImageDitheringMethod = true; 
   // Save it again 
   codecs.Save(image, @"C:\Dithered.tif", RasterImageFormat.CcittGroup4, 1); 
             
   image.Dispose(); 
} 

VB
Private Shared Sub Test(ByVal codecs As RasterCodecs, ByVal coloredImageFileName As String) 
   ' RasterCodecs.Options.Save.UseImageDitheringMethod is false by default 
             
   Dim image As RasterImage = codecs.Load(coloredImageFileName) 
   ' Save it with no dithering options 
   codecs.Save(image, "C:\NotDithered.tif", RasterImageFormat.CcittGroup4, 1) 
             
   ' Change the image dithering method to FloydStein 
   image.DitheringMethod = RasterDitheringMethod.FloydStein 
   ' Use the image dithering method when saving 
   codecs.Options.Save.UseImageDitheringMethod = True 
   ' Save it again 
   codecs.Save(image, "C:\Dithered.tif", RasterImageFormat.CcittGroup4, 1) 
             
   image.Dispose() 
End Sub 

Saving Color Image Data as Bitonal

LEADTOOLS can automatically save a colored image (an image that has more than 1 bit/pixel) as bitonal (an image that has 1 bit/pixel). This is accomplished by passing 1 as the value of the bitsPerPixel parameter of the various RasterCodecs.Save methods.

Due to the nature of the content of most bitonal images (usually text), dithering is not desirable. Therefore, LEADTOOLS does not use dithering when saving colored image data as bitonal (1-bit/pixel) by default. This increases the likelihood that the final bitonal image will contain the clearest representation of the original text in the image to provide the best input for recognition methods such as OCR and barcode.

LEADTOOLS Support for Windows Presentation Foundation (WPF) and Silverlight

LEADTOOLS provides extensive support for WPF and Silverlight. To learn how to display LEADTOOLS images in WPF/Silverlight, as well as convert them to and from WPF/Silverlight images, refer to RasterImage and Wpf/Silverlight

Help Version 19.0.2017.10.19
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS Imaging, Medical, and Document