Leadtools Namespace > RasterImage Class : ToDib Method |
public IntPtr ToDib( RasterConvertToDibType type )
'Declaration Public Function ToDib( _ ByVal type As RasterConvertToDibType _ ) As IntPtr
'Usage Dim instance As RasterImage Dim type As RasterConvertToDibType Dim value As IntPtr value = instance.ToDib(type)
public IntPtr ToDib( RasterConvertToDibType type )
-(LTHandle*)toDib:(LTRasterConvertToDibType)type;
function Leadtools.RasterImage.ToDib( type )
public: IntPtr ToDib( RasterConvertToDibType type )
When this method is completed, there are two copies of the image in memory: the DIB and the original RasterImage. Freeing one will not affect the other.
This methods allocates a DIB bitmap and copies the RasterImage to the DIB.
NOTE: This method returns the data in an unmanaged buffer. The caller is responsible for freeing the DIB's IntPtr when it is no longer needed. You can use Marshal.FreeHGlobal.
A DIB consists of one of the following:
followed by a color table and then the bitmap data. The resulting DIB type is determined by the value of the type parameter.
The orientation of the image and color order will depend on how the image was loaded into the RasterImage.
When you no longer need the DIB, you can free it using the Windows GlobalFree function or System.Runtime.InteropServices.Marshal.FreeHGlobal(System.IntPtr).
For more information on DDBs and DIBs, refer to Introduction: DIBs, DDBs, and the Clipboard.
This function does not support signed images.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Core Imports Leadtools.ImageProcessing.Color Imports Leadtools.WinForms Imports Leadtools.Dicom Imports Leadtools.Drawing Public Sub ToDibExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim dib As IntPtr Using image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")) dib = image.ToDib(RasterConvertToDibType.BitmapInfoHeader) End Using Using image As RasterImage = RasterImage.FromDib(dib) codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Image1_FromDib.bmp"), RasterImageFormat.Bmp, 0) End Using Marshal.FreeHGlobal(dib) codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Core; using Leadtools.ImageProcessing.Color; using Leadtools.WinForms; using Leadtools.Dicom; using Leadtools.Drawing; public void ToDibExample() { RasterCodecs codecs = new RasterCodecs(); IntPtr dib; using (RasterImage image = codecs.Load(Path.Combine(ImagesPath.Path, "Image1.cmp"))) { dib = image.ToDib(RasterConvertToDibType.BitmapInfoHeader); } using(RasterImage image = RasterImage.FromDib(dib)) { codecs.Save(image, Path.Combine(ImagesPath.Path, "Image1_FromDib.bmp"), RasterImageFormat.Bmp, 0); } Marshal.FreeHGlobal(dib); codecs.Dispose(); }
RasterImageExamples.prototype.ToDibExample = function () { Tools.SetLicense(); with (Leadtools) { with (Leadtools.Codecs) { var codecs = new RasterCodecs(); var dib; var srcFileName = "Assets\\Image1.cmp"; var image; var image2; return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) { return codecs.loadAsync(LeadStreamFactory.create(loadFile)) }) .then(function (img) { image = img; dib = image.toDib(RasterConvertToDibType.bitmapInfoHeader); image2 = RasterImage.fromDib(dib, 0); return Tools.AppLocalFolder().createFileAsync("Image1_FromDib.bmp") }) .then(function (saveFile) { var saveStream = LeadStreamFactory.create(saveFile); return codecs.saveAsync(image, saveStream, RasterImageFormat.bmp, 0) }) .then(function () { image2.close(); image.close(); codecs.close(); }); } } }
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Core; using Leadtools.ImageProcessing.Color; using Leadtools.Dicom; public async Task ToDibExample() { RasterCodecs codecs = new RasterCodecs(); Windows.Storage.Streams.IBuffer dib; string srcFileName = @"Assets\Image1.cmp"; StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName); using (RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile))) { dib = image.ToDib(RasterConvertToDibType.BitmapInfoHeader); } using (RasterImage image = RasterImage.FromDib(dib, 0)) { StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync("Image1_FromDib.bmp"); ILeadStream saveStream = LeadStreamFactory.Create(saveFile); await codecs.SaveAsync(image, saveStream, RasterImageFormat.Bmp, 0); } codecs.Dispose(); }