Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
Netscape Method
See Also  Example
Leadtools Namespace > RasterPalette Class : Netscape Method



Creates an array of RasterColor objects that represent the Netscape Fixed palette.

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()
 RasterCodecs.Startup()
 Dim codecs As RasterCodecs = New RasterCodecs()

 codecs.ThrowExceptionsOnInvalidImages = True

 Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
 Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "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()
 RasterCodecs.Shutdown()
      End Sub
C#Copy Code
public void NetscapePaletteExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; 
   string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "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(); 
   RasterCodecs.Shutdown(); 
}

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also