Loads extensions from the specified Exif file.
Syntax
Parameters
- fileName
- The input file name.
- pageNumber
- 1-based index of the page within the file that contains the extension.
Return Value
An
CodecsExtensionList object that contains the extensions found in this file.
Example
Visual Basic | Copy Code |
---|
RasterCodecs.ReadExtensions
Private Sub ExtensionsExample(ByVal exifFileName As String)
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim stampFileName As String = "C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Extension.bmp"
Dim audioFileNameTemplate As String = "C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Extension{0}.wav"
Console.WriteLine("Reading the extensions from the exif file")
Dim extensionList As CodecsExtensionList = codecs.ReadExtensions(exifFileName, 1)
If Not extensionList Is Nothing Then
If (extensionList.Flags And CodecsExtensionListFlags.Stamp) = CodecsExtensionListFlags.Stamp Then
Console.WriteLine("Stamp extension: Found, saving to {0}", stampFileName)
Dim stampImage As RasterImage = extensionList.CreateStamp()
codecs.Save(stampImage, stampFileName, RasterImageFormat.Bmp, 24)
stampImage.Dispose()
Else
Console.WriteLine("Stamp extension: Not found")
End If
If (extensionList.Flags And CodecsExtensionListFlags.Audio) = CodecsExtensionListFlags.Audio Then
Console.WriteLine("Audio extension: Found, saving ...")
Dim audioData As RasterNativeBuffer
Dim streamIndex As Integer = 0
Do
audioData = extensionList.GetAudioData(streamIndex)
If audioData.Data <> IntPtr.Zero Then
Dim 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(audioData.Length - 1) {}
Marshal.Copy(audioData.Data, data, 0, audioData.Length)
fs.Write(data, 0, audioData.Length)
End Using
streamIndex += 1
End If
Loop While audioData.Data <> IntPtr.Zero
Console.WriteLine("{0} total audio streams found", streamIndex)
Else
Console.WriteLine("Audio extension: Not found")
End If
Dim extensions As CodecsExtension() = extensionList.GetExtensions()
Console.WriteLine("Total number of extensions found in the file: {0}", extensions.Length)
Dim i As Integer = 0
Do While i < extensions.Length
Dim 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 += 1
Loop
extensionList.Dispose()
Else
Console.WriteLine("No extensions were found in the file")
End If
codecs.Dispose()
RasterCodecs.Shutdown()
End Sub |
C# | Copy Code |
---|
RasterCodecs.ReadExtensions void ExtensionsExample(string exifFileName) { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); string stampFileName = @"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Extension.bmp"; string audioFileNameTemplate = @"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Extension{0}.wav"; // Read the extensions from the file Console.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(); } else Console.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, audioData.Length); fs.Write(data, 0, audioData.Length); } streamIndex++; } } while(audioData.Data != IntPtr.Zero); Console.WriteLine("{0} total audio streams found", streamIndex); } else Console.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(); } else Console.WriteLine("No extensions were found in the file"); codecs.Dispose(); RasterCodecs.Shutdown(); } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also