Calculates the size required for output buffer.
public static int CalculateConvertSize(int inWidth,int inBitsPerPixel,int outWidth,int outBitsPerPixel)
Public Shared Function CalculateConvertSize( _ByVal inWidth As Integer, _ByVal inBitsPerPixel As Integer, _ByVal outWidth As Integer, _ByVal outBitsPerPixel As Integer _) As Integer
public static int CalculateConvertSize(int inWidth,int inBitsPerPixel,int outWidth,int outBitsPerPixel)
function Leadtools.RasterBufferConverter.CalculateConvertSize(inWidth ,inBitsPerPixel ,outWidth ,outBitsPerPixel)
public:static int CalculateConvertSize(int inWidth,int inBitsPerPixel,int outWidth,int outBitsPerPixel)
inWidth
Width in pixels of the input image data.
inBitsPerPixel
BitsPerPixel of the input image data.
outWidth
Width in pixels of the desired output image data.
outBitsPerPixel
BitsPerPixel of the desired output image data.
The size in bytes of the required output buffer.
Use this method to calculate the required size of the output buffer for image data conversions.
This example loads an image at 24 bits per pixel, and creates a new image at 4 bits per pixel, and then uses the Convert method to convert data from 24 bits per pixel to 4 bits per pixel.
using Leadtools;using Leadtools.Codecs;using LeadtoolsExamples.Common;public void CalculateConvertSizeExample(){string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");string destFileName = Path.Combine(ImagesPath.Path, "Image1_4bits.bmp");using (RasterCodecs codecs = new RasterCodecs()){codecs.ThrowExceptionsOnInvalidImages = true;// Load the image, at 24 bit per pixel.RasterImage srcImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1);Assert.IsNotNull(srcImage);Assert.IsTrue(srcImage.BitsPerPixel == 24);// Create a new 4-bit image.using (RasterImage destImage = new RasterImage(RasterMemoryFlags.Conventional,srcImage.Width,srcImage.Height,4,srcImage.Order,srcImage.ViewPerspective,srcImage.GetPalette(),IntPtr.Zero,0)){Assert.IsNotNull(destImage);Assert.IsTrue(destImage.BitsPerPixel == 4);int bufferSize = RasterBufferConverter.CalculateConvertSize(srcImage.Width,srcImage.BitsPerPixel,destImage.Width,destImage.BitsPerPixel);// Allocate the buffer in unmanaged memoryIntPtr buffer = Marshal.AllocHGlobal(bufferSize);Assert.IsFalse(buffer == IntPtr.Zero);// Process each row from srcImage to destImage.srcImage.Access();destImage.Access();for (int i = 0; i < srcImage.Height; i++){srcImage.GetRow(i, buffer, srcImage.BytesPerLine);RasterBufferConverter.Convert(buffer,srcImage.Width,srcImage.BitsPerPixel,destImage.BitsPerPixel,srcImage.Order,destImage.Order,null,null,0,8,0,RasterConvertBufferFlags.None);destImage.SetRow(i, buffer, destImage.BytesPerLine);}destImage.Release();srcImage.Release();// Save the destination image back to diskcodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 4);// Clean upMarshal.FreeHGlobal(buffer);}}}
Imports LeadtoolsImports Leadtools.CodecsPublic Sub CalculateConvertSizeExample()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_4bits.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 new 4-bit image.Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional,srcImage.Width,srcImage.Height,4,srcImage.Order,srcImage.ViewPerspective,srcImage.GetPalette(),IntPtr.Zero,0)Debug.Assert(destImage.BitsPerPixel = 4)Dim bufferSize As Integer = RasterBufferConverter.CalculateConvertSize(srcImage.Width, srcImage.BitsPerPixel, destImage.Width, destImage.BitsPerPixel)' Allocate the buffer in unmanaged memoryDim buffer As IntPtr = Marshal.AllocHGlobal(bufferSize)' Process each row from srcImage to destImage.srcImage.Access()destImage.Access()Dim i As Integer = 0Do While i < srcImage.HeightsrcImage.GetRow(i, buffer, srcImage.BytesPerLine)RasterBufferConverter.Convert(buffer, srcImage.Width, srcImage.BitsPerPixel, destImage.BitsPerPixel, srcImage.Order,destImage.Order, Nothing, Nothing, 0, 8, 0, RasterConvertBufferFlags.None)destImage.SetRow(i, buffer, destImage.BytesPerLine)i += 1LoopdestImage.Release()srcImage.Release()' Save the destination image back to diskcodecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 4)' Clean upMarshal.FreeHGlobal(buffer)srcImage.Dispose()destImage.Dispose()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
using Leadtools;using Leadtools.Codecs;using Leadtools.Examples;public void CalculateConvertSizeExample(RasterImage srcImage, Stream destStream){// srcImage should be 24 bits per pixel.RasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;// Create a new 4-bit image.RasterImage destImage = new RasterImage(RasterMemoryFlags.Conventional,srcImage.Width,srcImage.Height,4,srcImage.Order,srcImage.ViewPerspective,srcImage.GetPalette(),null,0);Debug.Assert(destImage.BitsPerPixel == 4);int bufferSize = RasterBufferConverter.CalculateConvertSize(srcImage.Width,srcImage.BitsPerPixel,destImage.Width,destImage.BitsPerPixel);// Allocate the bufferbyte[] buffer = new byte[bufferSize];// Process each row from srcImage to destImage.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,8,0,RasterConvertBufferFlags.None);destImage.SetRow(i, buffer, 0, destImage.BytesPerLine);}destImage.Release();srcImage.Release();// Save the destination image back to diskcodecs.Save(destImage, destStream, RasterImageFormat.Bmp, 4);// Clean upsrcImage.Dispose();destImage.Dispose();}
Imports LeadtoolsImports Leadtools.CodecsPublic Sub CalculateConvertSizeExample(ByVal srcImage As RasterImage, ByVal destStream As Stream)' srcImage should be 24 bits per pixel.Dim codecs As RasterCodecs = New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = True' Create a new 4-bit image.Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, 4, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), Nothing, 0)Debug.Assert(destImage.BitsPerPixel = 4)Dim bufferSize As Integer = RasterBufferConverter.CalculateConvertSize(srcImage.Width, srcImage.BitsPerPixel, destImage.Width, destImage.BitsPerPixel)' Allocate the bufferDim buffer As Byte() = New Byte(bufferSize - 1) {}' Process each row from srcImage to destImage.srcImage.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, 8, 0, RasterConvertBufferFlags.None)destImage.SetRow(i, buffer, 0, destImage.BytesPerLine)i += 1LoopdestImage.Release()srcImage.Release()' Save the destination image back to diskcodecs.Save(destImage, destStream, RasterImageFormat.Bmp, 4)' Clean upsrcImage.Dispose()destImage.Dispose()End Sub
|
Products |
Support |
Feedback: CalculateConvertSize Method - Leadtools |
Introduction |
Help Version 19.0.2017.6.19
|

Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.