Converts an image from any bits-per-pixel to any bits-per-pixel.
public class ColorResolutionCommand : RasterCommand Public Class ColorResolutionCommandInherits RasterCommand
@interface LTColorResolutionCommand : LTRasterCommand public class ColorResolutionCommand extends RasterCommand public ref class ColorResolutionCommand : public RasterCommand
This class provides flexibility in specifying the output destination and in specifying the palette to use.
For general information about dithering, refer to Color Resolution and Dithering and Dithering Methods.
You can convert the image in place or create a new converted image.
In specifying a palette, you can use simple palette options, or you can specify a palette that is tailored to your needs. The tailored palette can be any size that you specify. It can include specific colors, reserved blank entries, and open entries that this method fills with optimized colors.
If you use the same tailored palette more than once, you can improve performance by creating a table, using RasterUserMatchTable.
NOTE: Using this class to change the color order of a 24-bit or 32-bit image (i.e. RGB to BGR) will have no effect on the image when painting or saving (to a file). If you want to change the visual appearance, you can simply swap the color order using the RasterImage.Order property.
When converting to 32 and 64-bit images, you can control whether to initialize the alpha channel values to all 0's or 1's through the InitAlpha property.
This class does not support signed data images. An exception will be thrown if a signed data image is passed to this class.
This class supports stripping the alpha channel from the image.
For more information, refer to Introduction to Image Processing With LEADTOOLS.
For more information, refer to Introduction - Palette Handling.
This example will run the ColorResolutionCommand on an image to convert it to 8 and 4 bits/pixel.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using LeadtoolsExamples.Common;public void ColorResolutionCommandExample(){RasterCodecs codecs = new RasterCodecs();string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");string destFileName1 = Path.Combine(ImagesPath.Path, "Image1_colorres8.bmp");string destFileName2 = Path.Combine(ImagesPath.Path, "Image1_colorres4.bmp");// Load the source image from diskRasterImage image = codecs.Load(srcFileName);// First color-res it to 8 bits per pixel using the Netscape palette into a seperate imageColorResolutionCommand cmd = new ColorResolutionCommand();cmd.Mode = ColorResolutionCommandMode.CreateDestinationImage;cmd.BitsPerPixel = 8;cmd.Order = RasterByteOrder.Rgb;cmd.DitheringMethod = RasterDitheringMethod.None;cmd.PaletteFlags = ColorResolutionCommandPaletteFlags.UsePalette;cmd.SetPalette(RasterPalette.Netscape());cmd.Run(image);RasterImage destImage = cmd.DestinationImage;Assert.IsTrue(destImage.BitsPerPixel == 8);// Save it to diskcodecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 8);destImage.Dispose();// Now color-res the image in-place to 4-bits per pixel using the Optimized palettecmd.Mode = ColorResolutionCommandMode.InPlace;cmd.BitsPerPixel = 4;cmd.Order = RasterByteOrder.Rgb;cmd.DitheringMethod = RasterDitheringMethod.None;cmd.PaletteFlags = ColorResolutionCommandPaletteFlags.Optimized;cmd.Run(image);Assert.IsTrue(image.BitsPerPixel == 4);// Save it to diskcodecs.Save(image, destFileName2, RasterImageFormat.Bmp, 4);// Clean UpdestImage.Dispose();image.Dispose();codecs.Dispose();}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessingPublic Sub ColorResolutionCommandExample()Dim codecs As RasterCodecs = New RasterCodecs()Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")Dim destFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_colorres8.bmp")Dim destFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_colorres4.bmp")' Load the source image from diskDim image As RasterImage = codecs.Load(srcFileName)' First color-res it to 8 bits per pixel using the Netscape palette into a seperate imageDim cmd As ColorResolutionCommand = New ColorResolutionCommand()cmd.Mode = ColorResolutionCommandMode.CreateDestinationImagecmd.BitsPerPixel = 8cmd.Order = RasterByteOrder.Rgbcmd.DitheringMethod = RasterDitheringMethod.Nonecmd.PaletteFlags = ColorResolutionCommandPaletteFlags.UsePalettecmd.SetPalette(RasterPalette.Netscape())cmd.Run(image)Dim destImage As RasterImage = cmd.DestinationImageDebug.Assert(destImage.BitsPerPixel = 8)' Save it to diskcodecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 8)destImage.Dispose()' Now color-res the image in-place to 4-bits per pixel using the Optimized palettecmd.Mode = ColorResolutionCommandMode.InPlacecmd.BitsPerPixel = 4cmd.Order = RasterByteOrder.Rgbcmd.DitheringMethod = RasterDitheringMethod.Nonecmd.PaletteFlags = ColorResolutionCommandPaletteFlags.Optimizedcmd.Run(image)Debug.Assert(image.BitsPerPixel = 4)' Save it to diskcodecs.Save(image, destFileName2, RasterImageFormat.Bmp, 4)destImage.Dispose()' Clean Upimage.Dispose()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
c#[Silverlight C# Example]using Leadtools;using Leadtools.Codecs;using Leadtools.Examples;using Leadtools.ImageProcessing;using Leadtools.Windows.Media;public void ColorResolutionCommandExample(RasterImage image, Stream destStream8, Stream destStream4){RasterCodecs codecs = new RasterCodecs();// First color-res it to 8 bits per pixel using the Netscape palette into a seperate imageColorResolutionCommand cmd = new ColorResolutionCommand();cmd.Mode = ColorResolutionCommandMode.CreateDestinationImage;cmd.BitsPerPixel = 8;cmd.Order = RasterByteOrder.Rgb;cmd.DitheringMethod = RasterDitheringMethod.None;cmd.PaletteFlags = ColorResolutionCommandPaletteFlags.UsePalette;cmd.SetPalette(RasterPalette.Netscape());cmd.Run(image);RasterImage destImage = cmd.DestinationImage;Debug.Assert(destImage.BitsPerPixel == 8);// Save it to diskcodecs.Save(destImage, destStream8, RasterImageFormat.Bmp, 8);destImage.Dispose();// Now color-res the image in-place to 4-bits per pixel using the Optimized palettecmd.Mode = ColorResolutionCommandMode.InPlace;cmd.BitsPerPixel = 4;cmd.Order = RasterByteOrder.Rgb;cmd.DitheringMethod = RasterDitheringMethod.None;cmd.PaletteFlags = ColorResolutionCommandPaletteFlags.Optimized;cmd.Run(image);Debug.Assert(image.BitsPerPixel == 4);// Save it to diskcodecs.Save(image, destStream4, RasterImageFormat.Bmp, 4);destImage.Dispose();// Clean Upimage.Dispose();}vb[Silverlight VB Example]Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessingImports Leadtools.Windows.MediaPublic Sub ColorResolutionCommandExample(ByVal image As RasterImage, ByVal destStream8 As Stream, ByVal destStream4 As Stream)Dim codecs As RasterCodecs = New RasterCodecs()' First color-res it to 8 bits per pixel using the Netscape palette into a seperate imageDim cmd As ColorResolutionCommand = New ColorResolutionCommand()cmd.Mode = ColorResolutionCommandMode.CreateDestinationImagecmd.BitsPerPixel = 8cmd.Order = RasterByteOrder.Rgbcmd.DitheringMethod = RasterDitheringMethod.Nonecmd.PaletteFlags = ColorResolutionCommandPaletteFlags.UsePalettecmd.SetPalette(RasterPalette.Netscape())cmd.Run(image)Dim destImage As RasterImage = cmd.DestinationImageDebug.Assert(destImage.BitsPerPixel = 8)' Save it to diskcodecs.Save(destImage, destStream8, RasterImageFormat.Bmp, 8)destImage.Dispose()' Now color-res the image in-place to 4-bits per pixel using the Optimized palettecmd.Mode = ColorResolutionCommandMode.InPlacecmd.BitsPerPixel = 4cmd.Order = RasterByteOrder.Rgbcmd.DitheringMethod = RasterDitheringMethod.Nonecmd.PaletteFlags = ColorResolutionCommandPaletteFlags.Optimizedcmd.Run(image)Debug.Assert(image.BitsPerPixel = 4)' Save it to diskcodecs.Save(image, destStream4, RasterImageFormat.Bmp, 4)destImage.Dispose()' Clean Upimage.Dispose()End Sub
ColorResolutionCommand Members
Leadtools.ImageProcessing Namespace
Introduction to Image Processing With LEADTOOLS
Codecs.CodecsThumbnailOptions.DitheringMethod property
ImageProcessing.ColorResolutionCommand.DitheringMethod property
RasterDitheringMethod enumeration
RasterDefaults.DitheringMethod property
RasterImage.DitheringMethod property
RasterImage.StartDithering method
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
