←Select platform

StartDithering Method

Summary
Initializes the buffered dithering of an image.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public void StartDithering( 
   RasterColor[] palette, 
   int colors 
) 
- (BOOL)startDithering:(nullable NSArray<LTRasterColor *> *)palette  
                colors:(NSUInteger)colors  
                 error:(NSError **)error 
public void startDithering( 
   RasterColor[] palette, 
   int colors 
); 
public: 
void StartDithering(  
   array<RasterColor>^ palette, 
   int colors 
)  
def StartDithering(self,] palette,colors): 

Parameters

palette
The palette this uses for dithering. You can specify your own palette, or use a null reference for LEAD's fixed palette.

colors
Number of colors used in the palette. If the palette contains more colors, only the first  colors colors are used. Valid values are 2 to 256.

Remarks

The following flow chart shows how the methods relate to each other:

Dithering Flow Chart

The following properties from the RasterImage are used to control the dithering operation:

This method does not support signed images.

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

Example

This example dithers each line in one image and writes it to another image.

C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Dicom; 
using Leadtools.Drawing; 
using Leadtools.Controls; 
using Leadtools.Svg; 
 
 
public void StartDitheringExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   // Load an image that has BottomLeft ViewPerspective 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")); 
 
   RasterColor[] Palette = RasterPalette.Fixed(256); 
 
   // Create the new palletized image. 
   RasterImage destinationImage = new RasterImage(RasterMemoryFlags.Conventional, image.Width, image.Height, 8, image.Order, image.ViewPerspective, Palette, IntPtr.Zero, 0); 
 
   // Set the dithering method. 
   image.DitheringMethod = RasterDitheringMethod.StevensonArce; 
 
   // Initialize the dithering process. 
   image.StartDithering(Palette, 256); 
 
   // Allocate the output buffer for 8-bit data. 
   byte[] InBuffer = new byte[image.Width * 3];// Buffer to hold the input row. 
   byte[] OutBuffer = new byte[image.Width];// Buffer to hold the output row. 
 
   // Use DitherLine method to process each row in the image. 
   image.Access(); 
   destinationImage.Access(); 
   for (int i = 0; i < image.Height; i++) 
   { 
      image.GetRow(i, InBuffer, 0, image.BytesPerLine); 
      image.DitherLine(InBuffer, 0, OutBuffer, 0); 
      destinationImage.SetRow(i, OutBuffer, 0, destinationImage.BytesPerLine); 
   } 
   destinationImage.Release(); 
   image.Release(); 
 
   // End the dithering process. 
   image.StopDithering(); 
 
   codecs.Save(destinationImage, Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1_DitherLine.BMP"), RasterImageFormat.Bmp, 0); 
 
   image.Dispose(); 
   destinationImage.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
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.