←Select platform

ColorResolutionCommand Class

Summary
Converts an image from any bits-per-pixel to any bits-per-pixel.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class ColorResolutionCommand : RasterCommand 
@interface LTColorResolutionCommand : LTRasterCommand 
public class ColorResolutionCommand extends RasterCommand 
public ref class ColorResolutionCommand : public RasterCommand   
class ColorResolutionCommand(RasterCommand): 
Remarks

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.

Color Resolution Segment Function - Before

Color Resolution Segment Function - Before

Color Resolution Segment Function - After

Color Resolution Segment Function - After

View additional platform support for this Color Resolution Segment function.

Example

This example will run the ColorResolutionCommand on an image to convert it to 8 and 4 bits/pixel.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
 
 
public void ColorResolutionCommandExample() 
{ 
	RasterCodecs codecs = new RasterCodecs(); 
 
	string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
	string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_colorres8.bmp"); 
	string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_colorres4.bmp"); 
 
	// Load the source image from disk 
	RasterImage image = codecs.Load(srcFileName); 
 
	// First color-res it to 8 bits per pixel  using the Netscape palette into a seperate image 
	ColorResolutionCommand 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 disk 
	codecs.Save(destImage, destFileName1, RasterImageFormat.Bmp, 8); 
	destImage.Dispose(); 
 
	// Now color-res the image in-place to 4-bits per pixel using the Optimized palette 
	cmd.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 disk 
	codecs.Save(image, destFileName2, RasterImageFormat.Bmp, 4); 
 
	// Clean Up 
	destImage.Dispose(); 
	image.Dispose(); 
	codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.*; 
 
 
public void colorResolutionCommandExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   RasterCodecs codecs = new RasterCodecs(); 
   String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "rgsref.cmp"); 
   String destFileName1 = combine(LEAD_VARS_IMAGES_DIR, "rgsref_colorres8.bmp"); 
   String destFileName2 = combine(LEAD_VARS_IMAGES_DIR, "rgsref_colorres4.bmp"); 
 
   // Load the source image from disk 
   RasterImage image = codecs.load(srcFileName); 
 
   // First color-res it to 8 bits per pixel using the Netscape palette into a 
   // seperate image 
   ColorResolutionCommand cmd = new ColorResolutionCommand(); 
   cmd.setMode(ColorResolutionCommandMode.CREATE_DESTINATION_IMAGE); 
   cmd.setBitsPerPixel(8); 
   cmd.setOrder(RasterByteOrder.RGB); 
   cmd.setDitheringMethod(RasterDitheringMethod.NONE); 
   cmd.setPaletteFlags(ColorResolutionCommandPaletteFlags.USE_PALETTE.getValue()); 
   cmd.setPalette(RasterPalette.netscape()); 
   cmd.run(image); 
 
   RasterImage destImage = cmd.getDestinationImage(); 
   assertTrue(destImage.getBitsPerPixel() == 8); 
 
   // Save it to disk 
   codecs.save(destImage, destFileName1, RasterImageFormat.BMP, 8); 
 
   assertTrue("file unsuccessfully saved to " + destFileName1, (new File(destFileName1)).exists()); 
   System.out.printf("File saved successfully to %s%n", destFileName1); 
 
   destImage.dispose(); 
 
   // Now color-res the image in-place to 4-bits per pixel using the Optimized 
   // palette 
   cmd.setMode(ColorResolutionCommandMode.IN_PLACE); 
   cmd.setBitsPerPixel(4); 
   cmd.setOrder(RasterByteOrder.RGB); 
   cmd.setDitheringMethod(RasterDitheringMethod.NONE); 
   cmd.setPaletteFlags(ColorResolutionCommandPaletteFlags.OPTIMIZED.getValue()); 
   cmd.run(image); 
   assertTrue(image.getBitsPerPixel() == 4); 
 
   // Save it to disk 
   codecs.save(image, destFileName2, RasterImageFormat.BMP, 4); 
 
   assertTrue("file unsuccessfully saved to " + destFileName1, (new File(destFileName1)).exists()); 
   System.out.printf("File saved successfully to %s%n", destFileName1); 
 
   // Clean Up 
   destImage.dispose(); 
   image.dispose(); 
   codecs.dispose(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.5.22
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.