←Select platform

StartDithering Method

Summary

Initializes the buffered dithering of an image.

Syntax

C#
VB
Java
Objective-C
WinRT C#
C++
public void StartDithering( 
   RasterColor[] palette, 
   int colors 
) 
Public Sub StartDithering( _ 
   ByVal palette() As Leadtools.RasterColor, _ 
   ByVal colors As Integer _ 
)  
public void StartDithering(  
   Leadtools.RasterColor[] palette, 
   int colors 
) 
- (BOOL)startDithering:(nullable NSArray<LTRasterColor *> *)palette  
                colors:(NSUInteger)colors  
                 error:(NSError **)error 
             
public void startDithering( 
  RasterColor[] palette,  
  int colors 
) 
             
 function Leadtools.RasterImage.StartDithering(  
   palette , 
   colors  
) 
public: 
void StartDithering(  
   Leadtools.array<RasterColor>^ palette, 
   int 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:

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#
VB
Silverlight C#
Silverlight VB
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 LeadtoolsExamples.Common; 
using Leadtools.Svg; 
 
public void StartDitheringExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   // Load an image that has BottomLeft ViewPerspective 
   RasterImage image = codecs.Load(Path.Combine(ImagesPath.Path, "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. 
   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); 
   } 
   // End the dithering process. 
   image.StopDithering(); 
 
   codecs.Save(destinationImage, Path.Combine(ImagesPath.Path, "IMAGE1_DitherLine.BMP"), RasterImageFormat.Bmp, 0); 
 
   image.Dispose(); 
   destinationImage.Dispose(); 
   codecs.Dispose(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Controls 
Imports Leadtools.Dicom 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Public Sub StartDitheringExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   ' Load an image that has BottomLeft ViewPerspective 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")) 
 
   Dim Palette As RasterColor() = RasterPalette.Fixed(8) 
 
   ' Create the new palletized image. 
   Dim destinationImage As RasterImage = 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. 
   Dim InBuffer As Byte() = New Byte(image.Width * 3 - 1) {} ' Buffer to hold the input row. 
   Dim OutBuffer As Byte() = New Byte(image.Width - 1) {} ' Buffer to hold the output row. 
 
   ' Use DitherLine method to process each row in the image. 
   Dim i As Integer = 0 
   Do While i < image.Height 
      image.GetRow(i, InBuffer, 0, image.BytesPerLine) 
      image.DitherLine(InBuffer, 0, OutBuffer, 0) 
      destinationImage.SetRow(i, OutBuffer, 0, destinationImage.BytesPerLine) 
      i += 1 
   Loop 
   ' 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() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Dicom; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Examples; 
using Leadtools.Windows.Media; 
 
public void StartDitheringExample(RasterImage image, Stream destStream) 
{ 
   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, null, 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. 
   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); 
   } 
   // End the dithering process. 
   image.StopDithering(); 
 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.Save(destinationImage, destStream, RasterImageFormat.Bmp, 0); 
 
   image.Dispose(); 
   destinationImage.Dispose(); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Dicom 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Core 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Windows.Media 
 
Public Sub StartDitheringExample(ByVal image As RasterImage, ByVal destStream As Stream) 
   Dim Palette As RasterColor() = RasterPalette.Fixed(256) 
 
   ' Create the new palletized image. 
   Dim destinationImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, image.Width, image.Height, 8, image.Order, image.ViewPerspective, Palette, Nothing, 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. 
   Dim InBuffer As Byte() = New Byte(image.Width * 3 - 1) {} ' Buffer to hold the input row. 
   Dim OutBuffer As Byte() = New Byte(image.Width - 1) {} ' Buffer to hold the output row. 
 
   ' Use DitherLine method to process each row in the image. 
   Dim i As Integer = 0 
   Do While i < image.Height 
      image.GetRow(i, InBuffer, 0, image.BytesPerLine) 
      image.DitherLine(InBuffer, 0, OutBuffer, 0) 
      destinationImage.SetRow(i, OutBuffer, 0, destinationImage.BytesPerLine) 
      i += 1 
   Loop 
   ' End the dithering process. 
   image.StopDithering() 
 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.Save(destinationImage, destStream, RasterImageFormat.Bmp, 0) 
 
   image.Dispose() 
   destinationImage.Dispose() 
End Sub 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly