LEADTOOLS (Leadtools assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
Netscape Method
See Also 
Leadtools Namespace > RasterPalette Class : Netscape Method



Creates an array of RasterColor objects that represent the Netscape Fixed palette. Supported in Silverlight, Windows Phone 7

Syntax

Visual Basic (Declaration) 
Public Shared Function Netscape() As RasterColor()
Visual Basic (Usage)Copy Code
Dim value() As RasterColor
 
value = RasterPalette.Netscape()
C# 
public static RasterColor[] Netscape()
C++/CLI 
public:
static array<RasterColor>^ Netscape(); 

Example

Visual BasicCopy Code
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
C#Copy Code
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";
}
SilverlightCSharpCopy Code
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();
}
SilverlightVBCopy Code
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: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only), Windows Phone 7

See Also