Imports Leadtools
  Imports Leadtools.Codecs
  Imports Leadtools.ImageProcessing
  Imports Leadtools.ImageProcessing.Core
  Public Sub NetscapePaletteExample()
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
   Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Netscape.bmp")
   ' Load the source image as 8 bits/pixel
   Dim srcImage As RasterImage = codecs.Load(srcFileName, 8, CodecsLoadByteOrder.Rgb, 1, 1)
   ' Get the netscape palette
   Dim netscapePalette As RasterColor() = RasterPalette.Netscape()
   ' Create the new palletized image.
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, 8, srcImage.Order, srcImage.ViewPerspective, netscapePalette, IntPtr.Zero, 0)
   ' Set the dithering method.
   srcImage.DitheringMethod = RasterDitheringMethod.StevensonArce
   srcImage.Access()
   destImage.Access()
   ' Initialize the dithering process.
   srcImage.StartDithering(netscapePalette, 256)
   ' Allocate the output buffer for 8-bit data.
   Dim inBuffer As Byte() = New Byte(srcImage.Width * 3 - 1) {} ' Buffer to hold the input row.
   Dim outBuffer As Byte() = New Byte(srcImage.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 < srcImage.Height
      srcImage.GetRow(i, inBuffer, 0, srcImage.BytesPerLine)
      srcImage.DitherLine(inBuffer, 0, outBuffer, 0)
      destImage.SetRow(i, outBuffer, 0, destImage.BytesPerLine)
      i += 1
   Loop
   ' End the dithering process.
   srcImage.StopDithering()
   destImage.Release()
   srcImage.Release()
   ' Save the destination image
   codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 8)
   ' Cleanup
   srcImage.Dispose()
   destImage.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.ImageProcessing;
using Leadtools.ImageProcessing.Core;
      
public void NetscapePaletteExample()
{
   string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
   string destFileName = Path.Combine(ImagesPath.Path, "Image1_Netscape.bmp");
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   // Load the source image as 8 bits/pixel
   RasterImage srcImage = codecs.Load(srcFileName, 8, CodecsLoadByteOrder.Rgb, 1, 1);
   // Get the netscape palette
   RasterColor[] netscapePalette = RasterPalette.Netscape();
   // Create the new palletized image.
   RasterImage destImage = new RasterImage(
      RasterMemoryFlags.Conventional,
      srcImage.Width,
      srcImage.Height,
      8,
      srcImage.Order,
      srcImage.ViewPerspective,
      netscapePalette,
      IntPtr.Zero,
      0);
   // Set the dithering method.
   srcImage.DitheringMethod = RasterDitheringMethod.StevensonArce;
   srcImage.Access();
   destImage.Access();
   // Initialize the dithering process.
   srcImage.StartDithering(netscapePalette, 256);
   // Allocate the output buffer for 8-bit data.
   byte[] inBuffer  = new byte [srcImage.Width * 3];  // Buffer to hold the input row.
   byte[] outBuffer = new byte [srcImage.Width];      // Buffer to hold the output row.
   // Use DitherLine method to process each row in the image.
   for(int i = 0; i < srcImage.Height; i++)
   {
      srcImage.GetRow(i, inBuffer, 0, srcImage.BytesPerLine);
      srcImage.DitherLine(inBuffer, 0, outBuffer, 0);
      destImage.SetRow(i, outBuffer, 0, destImage.BytesPerLine);
   }
   // End the dithering process.
   srcImage.StopDithering();
   destImage.Release();
   srcImage.Release();
   // Save the destination image
   codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 8);
   // Cleanup
   srcImage.Dispose();
   destImage.Dispose();
}
             
   
     
            using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Core;
using Leadtools.Windows.Media;
public void NetscapePaletteExample(RasterImage srcImage, Stream destStream)
{
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   // Get the netscape palette
   RasterColor[] netscapePalette = RasterPalette.Netscape();
   // Create the new palletized image.
   RasterImage destImage = new RasterImage(
      RasterMemoryFlags.Conventional,
      srcImage.Width,
      srcImage.Height,
      8,
      srcImage.Order,
      srcImage.ViewPerspective,
      netscapePalette,
      null,
      0);
   // Set the dithering method.
   srcImage.DitheringMethod = RasterDitheringMethod.StevensonArce;
   srcImage.Access();
   destImage.Access();
   // Initialize the dithering process.
   srcImage.StartDithering(netscapePalette, 256);
   // Allocate the output buffer for 8-bit data.
   byte[] inBuffer  = new byte [srcImage.Width * 3];  // Buffer to hold the input row.
   byte[] outBuffer = new byte [srcImage.Width];      // Buffer to hold the output row.
   // Use DitherLine method to process each row in the image.
   for(int i = 0; i < srcImage.Height; i++)
   {
      srcImage.GetRow(i, inBuffer, 0, srcImage.BytesPerLine);
      srcImage.DitherLine(inBuffer, 0, outBuffer, 0);
      destImage.SetRow(i, outBuffer, 0, destImage.BytesPerLine);
   }
   // End the dithering process.
   srcImage.StopDithering();
   destImage.Release();
   srcImage.Release();
   // Save the destination image
   codecs.Save(destImage, destStream, RasterImageFormat.Bmp, 8);
   // Cleanup
   srcImage.Dispose();
   destImage.Dispose();
}
             
   
     
            Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Core
Imports Leadtools.Windows.Media
Public Sub NetscapePaletteExample(ByVal srcImage As RasterImage, ByVal destStream As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True
   ' Get the netscape palette
   Dim netscapePalette As RasterColor() = RasterPalette.Netscape()
   ' Create the new palletized image.
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, 8, srcImage.Order, srcImage.ViewPerspective, netscapePalette, Nothing, 0)
   ' Set the dithering method.
   srcImage.DitheringMethod = RasterDitheringMethod.StevensonArce
   srcImage.Access()
   destImage.Access()
   ' Initialize the dithering process.
   srcImage.StartDithering(netscapePalette, 256)
   ' Allocate the output buffer for 8-bit data.
   Dim inBuffer As Byte() = New Byte (srcImage.Width * 3 - 1){} ' Buffer to hold the input row.
   Dim outBuffer As Byte() = New Byte (srcImage.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 < srcImage.Height
      srcImage.GetRow(i, inBuffer, 0, srcImage.BytesPerLine)
      srcImage.DitherLine(inBuffer, 0, outBuffer, 0)
      destImage.SetRow(i, outBuffer, 0, destImage.BytesPerLine)
      i += 1
   Loop
   ' End the dithering process.
   srcImage.StopDithering()
   destImage.Release()
   srcImage.Release()
   ' Save the destination image
   codecs.Save(destImage, destStream, RasterImageFormat.Bmp, 8)
   ' Cleanup
   srcImage.Dispose()
   destImage.Dispose()
End Sub