LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

Netscape Method

Example 





Creates an array of RasterColor objects that represent the Netscape Fixed palette. .NET support Silverlight support
Syntax
public static RasterColor[] Netscape()
'Declaration
 
Public Shared Function Netscape() As RasterColor()
'Usage
 
Dim value() As RasterColor
 
value = RasterPalette.Netscape()
public static RasterColor[] Netscape()
 function Leadtools.RasterPalette.Netscape()
public:
static array<RasterColor>^ Netscape(); 
Example
 
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
public void NetscapePaletteExample()
   {
      RasterCodecs codecs = new RasterCodecs();

      codecs.ThrowExceptionsOnInvalidImages = true;

      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Netscape.bmp");

      // 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();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
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();
}
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
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterPalette Class
RasterPalette Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.