public static class RasterBufferConverter Public MustInherit NotInheritable Class RasterBufferConverter public ref class RasterBufferConverter abstract sealed 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.
using Leadtools;using Leadtools.Codecs;public void RasterBufferConverterExample(){string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_16bits.bmp");using (RasterCodecs codecs = new RasterCodecs()){codecs.ThrowExceptionsOnInvalidImages = true;// Load the image, at 24 bit per pixel.using (RasterImage srcImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)){Assert.IsNotNull(srcImage);Assert.IsTrue(srcImage.BitsPerPixel == 24);// Create a new 16-bit image.using (RasterImage destImage = new RasterImage(RasterMemoryFlags.Conventional,srcImage.Width,srcImage.Height,16,srcImage.Order,srcImage.ViewPerspective,srcImage.GetPalette(),IntPtr.Zero,0)){Assert.IsNotNull(destImage);Assert.IsTrue(destImage.BitsPerPixel == 16);// Create a buffer large enough to hold a source or destination rowint bytesPerLine = Math.Max(srcImage.BytesPerLine, destImage.BytesPerLine);byte[] buffer = new byte[bytesPerLine];// Process each row from src to dest imagesrcImage.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 diskcodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 16);}}}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";}
Imports LeadtoolsImports Leadtools.CodecsPublic Sub RasterBufferConverterExample()Dim codecs As RasterCodecs = New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = TrueDim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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)' Create a buffer large enough to hold one row at a time.Dim bytesPerLine As Integer = Math.Max(srcImage.BytesPerLine, destImage.BytesPerLine)Dim buffer As Byte() = New Byte(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 imagesrcImage.Access()destImage.Access()Dim i As Integer = 0Do While i < srcImage.HeightsrcImage.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 += 1LoopdestImage.Release()srcImage.Release()' Save the destination image back to diskcodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 16)' Clean upsrcImage.Dispose()destImage.Dispose()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
