Loads extensions from the specified Exif file.
public Leadtools.Codecs.CodecsExtensionList ReadExtensions(string fileName,int pageNumber)
Public Overloads Function ReadExtensions( _ByVal fileName As String, _ByVal pageNumber As Integer _) As Leadtools.Codecs.CodecsExtensionList
public Leadtools.Codecs.CodecsExtensionList ReadExtensions(string fileName,int pageNumber)
- (nullable LTCodecsExtensionList *)readExtensionsFromFile:(NSString *)filepageNumber:(NSInteger)pageNumbererror:(NSError **)error
function Leadtools.Codecs.RasterCodecs.ReadExtensions(String,Int32)(fileName ,pageNumber)
public:Leadtools.Codecs.CodecsExtensionList^ ReadExtensions(String^ fileName,int pageNumber)
fileName
The input file name.
pageNumber
1-based index of the page within the file that contains the extension.
An CodecsExtensionList object that contains the extensions found in this file.
Please note that not all Exif files have extensions.
Currently, this method works only with Exif files. Exif files can contain extra data stored as "FlashPix extensions". This method can be used to access this extra data. LEADTOOLS refers to this extra data as "extensions".
You must dispose the CodecsExtensionList returned from this method when you are done using it.
This example will show detailed information on the streams present in the Exif file.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Color;using Leadtools.Svg;using LeadtoolsExamples.Common;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{0}.wav");// Read the extensions from the fileConsole.WriteLine("Reading the extensions from the exif file");CodecsExtensionList extensionList = codecs.ReadExtensions(exifFileName, 1);if (extensionList != null){if ((extensionList.Flags & CodecsExtensionListFlags.Stamp) == CodecsExtensionListFlags.Stamp){Console.WriteLine("Stamp extension: Found, saving to {0}", stampFileName);RasterImage stampImage = extensionList.CreateStamp();codecs.Save(stampImage, stampFileName, RasterImageFormat.Bmp, 24);stampImage.Dispose();}elseConsole.WriteLine("Stamp extension: Not found");if ((extensionList.Flags & CodecsExtensionListFlags.Audio) == CodecsExtensionListFlags.Audio){Console.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);Console.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);Console.WriteLine("{0} total audio streams found", streamIndex);}elseConsole.WriteLine("Audio extension: Not found");CodecsExtension[] extensions = extensionList.GetExtensions();Console.WriteLine("Total number of extensions found in the file: {0}", extensions.Length);for (int i = 0; i < extensions.Length; i++){CodecsExtension extension = extensions[i];Console.WriteLine(" {0}. Name: {1}, Clsid: {2}, UCDefault: {3}, DatLength: {4}",i, extension.Name, extension.Clsid, extension.UCDefault, extension.DataLength);}extensionList.Dispose();}elseConsole.WriteLine("No extensions were found in the file");codecs.Dispose();}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessingImports Leadtools.ImageProcessing.ColorImports Leadtools.DrawingImports Leadtools.SvgPrivate Sub ExtensionsExample(ByVal exifFileName As String)Dim codecs As RasterCodecs = New RasterCodecs()Dim stampFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Extension.bmp")Dim audioFileNameTemplate As String = Path.Combine(LEAD_VARS.ImagesDir, "Extension{0}.wav")' Read the extensions from the fileConsole.WriteLine("Reading the extensions from the exif file")Dim extensionList As CodecsExtensionList = codecs.ReadExtensions(exifFileName, 1)If Not extensionList Is Nothing ThenIf (extensionList.Flags And CodecsExtensionListFlags.Stamp) = CodecsExtensionListFlags.Stamp ThenConsole.WriteLine("Stamp extension: Found, saving to {0}", stampFileName)Dim stampImage As RasterImage = extensionList.CreateStamp()codecs.Save(stampImage, stampFileName, RasterImageFormat.Bmp, 24)stampImage.Dispose()ElseConsole.WriteLine("Stamp extension: Not found")End IfIf (extensionList.Flags And CodecsExtensionListFlags.Audio) = CodecsExtensionListFlags.Audio ThenConsole.WriteLine("Audio extension: Found, saving ...")Dim audioData As RasterNativeBufferDim streamIndex As Integer = 0DoaudioData = extensionList.GetAudioData(streamIndex)If audioData.Data <> IntPtr.Zero ThenDim audioFileName As String = String.Format(audioFileNameTemplate, streamIndex)Console.WriteLine("To {0}", audioFileName)Using fs As FileStream = File.Create(audioFileName)Dim data As Byte() = New Byte(CInt(audioData.Length) - 1) {}Marshal.Copy(audioData.Data, data, 0, CInt(audioData.Length))fs.Write(data, 0, CInt(audioData.Length))End UsingstreamIndex += 1End IfLoop While audioData.Data <> IntPtr.ZeroConsole.WriteLine("{0} total audio streams found", streamIndex)ElseConsole.WriteLine("Audio extension: Not found")End IfDim extensions As CodecsExtension() = extensionList.GetExtensions()Console.WriteLine("Total number of extensions found in the file: {0}", extensions.Length)Dim i As Integer = 0Do While i < extensions.LengthDim extension As CodecsExtension = extensions(i)Console.WriteLine(" {0}. Name: {1}, Clsid: {2}, UCDefault: {3}, DatLength: {4}", i, extension.Name, extension.Clsid, extension.UCDefault, extension.DataLength)i += 1LoopextensionList.Dispose()ElseConsole.WriteLine("No extensions were found in the file")End Ifcodecs.Dispose()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
|
Products |
Support |
Feedback: ReadExtensions(String,Int32) Method - Leadtools.Codecs |
Introduction |
Help Version 19.0.2017.6.16
|

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.