StartDithering Method (original) (raw)
Summary
Initializes the buffered dithering of an image.
Syntax
C#
Objective-C
C++/CLI
Java
Python
- (BOOL)startDithering:(nullable NSArray<LTRasterColor *> *)_palette_
colors:(NSUInteger)_colors_
error:(NSError **)error
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.
Example
This example dithers each line in one image and writes it to another image.
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:\LEADTOOLS22\Resources\Images";
}
Leadtools Assembly