Provides support for converting image data buffers.
Syntax
Visual Basic (Declaration) | |
---|
Public MustInherit NotInheritable Class 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"
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) {}
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)
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()
codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 16)
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
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also