ReadExtensions(string,int) Method (original) (raw)

Summary

Loads extensions from the specified EXIF file.

Syntax

C#

Objective-C

C++/CLI

Python

- (nullable LTCodecsExtensionList *)readExtensionsFromFile:(NSString *)file pageNumber:(NSInteger)_pageNumber_ error:(NSError **)error

Parameters

fileName
The input file name.

pageNumber
1-based index of the page within the file that contains the extension.

Return Value

A CodecsExtensionList object that contains the extensions found in this file.

Example

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; 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"; }

Leadtools.Codecs Assembly

CompactFile(Stream,Stream,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(Stream,Stream,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

CompactFile(string,string,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(string,string,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

StartCompress(int,int,int,RasterByteOrder,RasterViewPerspective,int,byte[],int,int,CodecsCompression,CodecsCompressDataCallback) Method