←Select platform

GrayScaleToMultitoneCommand Class

Summary

Converts a grayscale image into a colored one by mixing or replacing the original values of the pixels with one or more new colors. This class is available in the Imaging Pro and above toolkits.

Syntax
C#
VB
Java
Objective-C
C++
public class GrayScaleToMultitoneCommand : RasterCommand 
Public Class GrayScaleToMultitoneCommand  
   Inherits RasterCommand 
@interface LTGrayscaleToMultitoneCommand : LTRasterCommand 
public class GrayScaleToMultitoneCommand extends RasterCommand 
public ref class GrayScaleToMultitoneCommand : public RasterCommand   

Remarks
  • This class was designed for use with grayscale images. If the image being used is not grayscale, this class only affects those pixels or areas of the image where Red = Green = Blue.
  • Monotone conversion is possible by setting Type to Replace, which clears the palette.
  • This class gives you the option of having the toolkit generate the array of colors to use or creating the array of colors to use yourself.
  • To have the toolkit generate the array of colors:

    • If the image is binary, call GrayScaleToMultitoneCommand with Tone set to GrayScaleToMultitoneCommandToneType.MonoTone, Distribution set to GrayScaleToMultitoneCommandDistributionType.Linear and the color you wish to use set in Color. The GrayscaleMode property will be set by GrayScaleToDuotoneCommand class object to determine the kind of grayscale palette being used. If the GrayscaleMode property is GrayscaleMode.OrderedInverse or GrayscaleMode.NotOrdered, then the color set in the Color property for the GrayScaleToMultitoneCommand class object will become the first color in the array generated by the toolkit, and the toolkit will create the second color in the array. The Color array will be updated with these two colors. If the GrayscaleMode property is a value other than GrayscaleMode.OrderedInverse or GrayscaleMode.NotOrdered, then the color set in the Color property for the GrayScaleToMultitoneCommand class object will become the second color in the array generated by the toolkit, and the toolkit will create the first color in the array. The Color property will be updated with these two colors.
    • If the image is grayscale (not binary) call the GrayScaleToMultitoneCommand with Distribution set to GrayScaleToMultitoneCommandDistributionType.Linear. The GrayScaleToMultitoneCommand will take the color(s) set in the Color property and generate a 256 color gradient for each color.

      1. If the Tone is set to GrayScaleToMultitoneCommandToneType.Duotone, set two colors in the Color property. The toolkit will create a 256 color array for each color.
      2. If the Tone is set to GrayScaleToMultitoneCommandToneType.Tritone, set three colors in the Color property. The toolkit will create a 256 color array for each color.
      3. If the Tone is set to GrayScaleToMultitoneCommandToneType.Quadtone, set four colors in the Color property. The toolkit will create a 256 color array for each color.
    • If the image is not grayscale (it is color) call the GrayScaleToMultitoneCommand with Distribution set to GrayScaleToMultitoneCommandDistributionType.Linear. The GrayScaleToMultitoneCommand will take the color(s) set in the Color property and generate a 256 color gradient for each color. These colors will be used to change only those pixels in the color image for which Red = Green = Blue.

  • To use a user-defined array of colors:

  • This class supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
  • This class does not support signed data images.
  • This command does not support 32-bit grayscale images.

For more information, refer to Introduction to Image Processing With LEADTOOLS. For more information, refer to Grayscale Images.

Example

Run the GrayScaleToMultitoneCommand on an image.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
 
public void GrayScaleToMultitoneCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"ImageProcessingDemo\Beauty16.jpg")); 
 
   // Prepare the command 
   GrayScaleToMultitoneCommand command = new GrayScaleToMultitoneCommand(); 
   command.Colors = new RasterColor[2]; 
   command.Colors[0].R = 255; 
   command.Colors[0].G = 255; 
   command.Colors[0].B = 0; 
   command.Colors[1].R = 255; 
   command.Colors[1].G = 0; 
   command.Colors[1].B = 0; 
   command.Gradient = null; 
   command.Distribution = GrayScaleToMultitoneCommandDistributionType.Linear; 
   command.Tone = GrayScaleToMultitoneCommandToneType.Duotone; 
   command.Type = GrayScaleToDuotoneCommandMixingType.ReplaceOldWithNew; 
   command.Run(image); 
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Color 
 
Public Sub GrayScaleToMultitoneCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "ImageProcessingDemo\\Beauty16.jpg")) 
 
   ' Prepare the command 
   Dim Colors() As RasterColor 
   ReDim Colors(1) 
 
   Dim command As GrayScaleToMultitoneCommand = New GrayScaleToMultitoneCommand 
   command.Colors = Colors 
   command.Colors(0).R = 255 
   command.Colors(0).G = 255 
   command.Colors(0).B = 0 
   command.Colors(1).R = 255 
   command.Colors(1).G = 0 
   command.Colors(1).B = 0 
   command.Gradient = Nothing 
   command.Distribution = GrayScaleToMultitoneCommandDistributionType.Linear 
   command.Tone = GrayScaleToMultitoneCommandToneType.Duotone 
   command.Type = GrayScaleToDuotoneCommandMixingType.ReplaceOldWithNew 
   command.Run(leadImage) 
   codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Examples; 
 
public void GrayScaleToMultitoneCommandExample(RasterImage image, Stream outStream) 
{ 
   // Prepare the command 
   GrayScaleToMultitoneCommand command = new GrayScaleToMultitoneCommand(); 
   command.Colors = new RasterColor[2]; 
   command.Colors[0].R = 255; 
   command.Colors[0].G = 255; 
   command.Colors[0].B = 0; 
   command.Colors[1].R = 255; 
   command.Colors[1].G = 0; 
   command.Colors[1].B = 0; 
   command.Gradient = null; 
   command.Distribution = GrayScaleToMultitoneCommandDistributionType.Linear; 
   command.Tone = GrayScaleToMultitoneCommandToneType.Duotone; 
   command.Type = GrayScaleToDuotoneCommandMixingType.ReplaceOldWithNew; 
   command.Run(image); 
 
   // Save result image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24); 
   image.Dispose(); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Color 
 
Public Sub GrayScaleToMultitoneCommandExample(ByVal image As RasterImage, ByVal outStream As Stream) 
   ' Prepare the command 
   Dim command As GrayScaleToMultitoneCommand = New GrayScaleToMultitoneCommand() 
   command.Colors = New RasterColor(1) {} 
   command.Colors(0).R = 255 
   command.Colors(0).G = 255 
   command.Colors(0).B = 0 
   command.Colors(1).R = 255 
   command.Colors(1).G = 0 
   command.Colors(1).B = 0 
   command.Gradient = Nothing 
   command.Distribution = GrayScaleToMultitoneCommandDistributionType.Linear 
   command.Tone = GrayScaleToMultitoneCommandToneType.Duotone 
   command.Type = GrayScaleToDuotoneCommandMixingType.ReplaceOldWithNew 
   command.Run(image) 
 
   ' Save result image 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24) 
   image.Dispose() 
End Sub 

Requirements

Target Platforms

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

Leadtools.ImageProcessing.Color Assembly