←Select platform

Data Property

Summary
Gets an unmanaged pointer to the extension data.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public IntPtr Data { get; } 
@property (nonatomic, assign, readonly) NSData *data; 
public byte[] getData() 
public: 
property IntPtr Data { 
   IntPtr get(); 
} 
Data # get  (CodecsExtension) 

Property Value

An IntPtr that points to the unmanaged extension data. If the extension data is a stream, this property will be IntPtr.Zero.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
public void ExtensionsExample(string exifFileName) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string stampFileName = Path.Combine(LEAD_VARS.ImagesDir, "Extension.bmp"); 
   string audioFileNameTemplate = Path.Combine(LEAD_VARS.ImagesDir, "Extension.wav"); 
 
   // Read the extensions from the file 
   Debug.WriteLine("Reading the extensions from the exif file"); 
   CodecsExtensionList extensionList = codecs.ReadExtensions(exifFileName, 1); 
   if (extensionList != null) 
   { 
      if ((extensionList.Flags & CodecsExtensionListFlags.Stamp) == CodecsExtensionListFlags.Stamp) 
      { 
         Debug.WriteLine("Stamp extension: Found, saving to {0}", stampFileName); 
         RasterImage stampImage = extensionList.CreateStamp(); 
         codecs.Save(stampImage, stampFileName, RasterImageFormat.Bmp, 24); 
         stampImage.Dispose(); 
      } 
      else 
         Debug.WriteLine("Stamp extension: Not found"); 
 
      if ((extensionList.Flags & CodecsExtensionListFlags.Audio) == CodecsExtensionListFlags.Audio) 
      { 
         Debug.WriteLine("Audio extension: Found, saving ..."); 
         RasterNativeBuffer audioData; 
         int streamIndex = 0; 
 
         do 
         { 
            audioData = extensionList.GetAudioData(streamIndex); 
            if (audioData.Data != IntPtr.Zero) 
            { 
               string audioFileName = string.Format(audioFileNameTemplate, streamIndex); 
               Debug.WriteLine("To {0}", audioFileName); 
               using (FileStream fs = File.Create(audioFileName)) 
               { 
                  byte[] data = new byte[audioData.Length]; 
                  Marshal.Copy(audioData.Data, data, 0, (int)audioData.Length); 
                  fs.Write(data, 0, (int)audioData.Length); 
               } 
 
               streamIndex++; 
            } 
         } 
         while (audioData.Data != IntPtr.Zero); 
 
         Debug.WriteLine("{0} total audio streams found", streamIndex); 
      } 
      else 
         Debug.WriteLine("Audio extension: Not found"); 
 
      CodecsExtension[] extensions = extensionList.GetExtensions(); 
      Debug.WriteLine("Total number of extensions found in the file: {0}", extensions.Length); 
 
      for (int i = 0; i < extensions.Length; i++) 
      { 
         CodecsExtension extension = extensions[i]; 
         Debug.WriteLine(" {0}. Name: {1}, Clsid: {2}, UCDefault: {3}, DatLength: {4}", 
            i, extension.Name, extension.Clsid, extension.UCDefault, extension.DataLength); 
      } 
 
      // Finalize cannot be called directly, it is invoked automatically. 
      // To clean up before exiting, use Dispose 
      extensionList.Dispose(); 
   } 
   else 
      Debug.WriteLine("No extensions were found in the file"); 
 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.5.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.