Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
RasterBufferConverter Class
See Also  Members   Example 
Leadtools Namespace : RasterBufferConverter Class



Provides support for converting image data buffers.

Syntax

Visual Basic (Declaration)  
Public MustInherit NotInheritable Class RasterBufferConverter 
Visual Basic (Usage) Copy Code
Dim instance As RasterBufferConverter
C#  
public static class RasterBufferConverter 
C++/CLI  
public ref class RasterBufferConverter abstract sealed 

Example

This example loads an image at 24 bits per pixel, and creates a new image at 16 bits per pixel, and uses the Convert method to convert data from 24 bits per pixel to 16 bits per pixel.

Visual Basic Copy Code
Public Sub RasterBufferConverterExample()
 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_16bits.bmp"

 ' Load the image, at 24 bit per pixel.
 Dim srcImage As RasterImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
 Debug.Assert(srcImage.BitsPerPixel = 24)

 Dim buffer As Byte() = New Byte(srcImage.BytesPerLine - 1) {}

 ' Create a new 16-bit image.
 Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, 16, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0)

 Debug.Assert(destImage.BitsPerPixel = 16)

 ' Process each row from src to dest image
 srcImage.Access()
 destImage.Access()

 Dim i As Integer = 0
 Do While i < srcImage.Height
    srcImage.GetRow(i, buffer, 0, srcImage.BytesPerLine)

    RasterBufferConverter.Convert(buffer, 0, srcImage.Width, srcImage.BitsPerPixel, destImage.BitsPerPixel, srcImage.Order, destImage.Order, Nothing, Nothing, 0)

    destImage.SetRow(i, buffer, 0, destImage.BytesPerLine)
    i += 1
 Loop

 destImage.Release()
 srcImage.Release()

 ' Save the destination image back to disk
 codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 16)

 ' Clean up
 srcImage.Dispose()
 destImage.Dispose()
 RasterCodecs.Shutdown()
      End Sub
C# Copy Code
public void RasterBufferConverterExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   string srcFileName =  LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp";  
   string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_16bits.bmp"; 
 
   // Load the image, at 24 bit per pixel. 
   RasterImage srcImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1); 
   Debug.Assert(srcImage.BitsPerPixel == 24); 
 
   byte[] buffer  = new byte[srcImage.BytesPerLine]; 
 
   // Create a new 16-bit image. 
   RasterImage destImage = new RasterImage( 
      RasterMemoryFlags.Conventional, 
      srcImage.Width, 
      srcImage.Height, 
      16, 
      srcImage.Order, 
      srcImage.ViewPerspective, 
      srcImage.GetPalette(), 
      IntPtr.Zero, 
      0); 
 
   Debug.Assert(destImage.BitsPerPixel == 16); 
 
   // Process each row from src to dest image 
   srcImage.Access(); 
   destImage.Access(); 
 
   for(int i = 0; i < srcImage.Height; i++) 
   { 
      srcImage.GetRow(i, buffer, 0, srcImage.BytesPerLine); 
 
      RasterBufferConverter.Convert( 
         buffer, 
         0, 
         srcImage.Width, 
         srcImage.BitsPerPixel, 
         destImage.BitsPerPixel, 
         srcImage.Order, 
         destImage.Order, 
         null, 
         null, 
         0); 
 
      destImage.SetRow(i, buffer, 0, destImage.BytesPerLine); 
   } 
 
   destImage.Release(); 
   srcImage.Release(); 
 
   // Save the destination image back to disk 
   codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 16); 
 
   // Clean up 
   srcImage.Dispose(); 
   destImage.Dispose(); 
   RasterCodecs.Shutdown(); 
}

Inheritance Hierarchy

System.Object
   Leadtools.RasterBufferConverter

Requirements

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

See Also