Property | Type | Description | |
---|---|---|---|
base_offset | long | ||
file | |||
ifd_offset | uint | ||
is_bigendian | bool | ||
max_offset | uint | ||
parse_makernote | bool | ||
structure |
Property | Type | Description | |
---|---|---|---|
CreateIFDEntry | IFDEntry | ||
DetectIFDLoop | bool | ||
FixupDirectory | void | ||
ParseMakernote | IFDEntry | ||
ReadAsciiString | string | ||
ReadIFD | uint | ||
ReadInt | int | ||
ReadIntArray | int[] | ||
ReadRational | |||
ReadSRational | TagLib.IFD.Entries.SRational | ||
ReadShort | short | ||
ReadShortArray | short[] | ||
ReadUInt | uint | ||
ReadUIntArray | uint[] | ||
ReadUShort | ushort | ||
ReadUShortArray | ushort[] | ||
StartIFDLoopDetect | void | ||
StopIFDLoopDetect | void |
Method | Description | |
---|---|---|
IFDReader ( |
Constructor. Reads an IFD from given file, using the given endianness.
|
|
Read ( ) : void |
Read all IFD segments from the file.
|
|
Read ( int count ) : void |
Read IFD segments from the file.
|
Method | Description | |
---|---|---|
CreateSubIFDReader ( |
Create a reader for Sub IFD entries.
|
|
ParseIFDEntry ( ushort tag, ushort type, uint count, long base_offset, uint offset ) : IFDEntry |
Try to parse the given IFD entry, used to discover format-specific entries.
|
Method | Description | |
---|---|---|
CreateIFDEntry ( ushort tag, ushort type, uint count, long base_offset, ByteVector offset_data, uint max_offset ) : IFDEntry |
Creates an IFDEntry from the given values. This method is used for every entry. Custom parsing can be hooked in by overriding the ParseIFDEntry(ushort,ushort,uint,long,uint) method.
|
|
DetectIFDLoop ( long offset ) : bool |
Attempts to detect whether or not this file has an endless IFD loop.
|
|
FixupDirectory ( long base_offset, IFDDirectory directory ) : void |
Performs some fixups to a read IFDDirectory. For some special cases multiple IFDEntry instances contained in the directory are needed. Therfore, we do the fixups after reading the whole directory to be sure, all entries are present.
|
|
ParseMakernote ( ushort tag, ushort type, uint count, long base_offset, uint offset ) : IFDEntry | ||
ReadAsciiString ( int count ) : string |
Reads an ASCII string from the current file. The exif standard allows to store multiple string separated by '\0' in one ASCII-field. On the other hand some programs (e.g. CanonZoomBrowser) fill some ASCII fields by trailing '\0's. We follow the Adobe practice as described in XMP Specification Part 3 (Storeage in Files), and process the ASCII string only to the first '\0'. |
|
ReadIFD ( long base_offset, uint offset, uint max_offset ) : uint |
Reads an IFD from file at position offset relative to base_offset.
|
|
ReadInt ( ) : int |
Reads a 4-byte int from the current file.
|
|
ReadIntArray ( uint count ) : int[] |
Reads an array of 4-byte int from the current file.
|
|
ReadRational ( ) : |
Reads a Rational by two following unsigned int from the current file.
|
|
ReadSRational ( ) : TagLib.IFD.Entries.SRational |
Reads a SRational by two following unsigned int from the current file.
|
|
ReadShort ( ) : short |
Reads a 2-byte signed short from the current file.
|
|
ReadShortArray ( uint count ) : short[] |
Reads an array of 2-byte signed shorts from the current file.
|
|
ReadUInt ( ) : uint |
Reads a 4-byte unsigned int from the current file.
|
|
ReadUIntArray ( uint count ) : uint[] |
Reads an array of 4-byte unsigned int from the current file.
|
|
ReadUShort ( ) : ushort |
Reads a 2-byte unsigned short from the current file.
|
|
ReadUShortArray ( uint count ) : ushort[] |
Reads an array of 2-byte shorts from the current file.
|
|
StartIFDLoopDetect ( ) : void |
Add to the reference count for the IFD loop detection.
|
|
StopIFDLoopDetect ( ) : void |
End the IFD loop detection, cleanup if we're the last.
|
protected CreateSubIFDReader ( |
||
file |
/// A |
|
is_bigendian | bool |
/// A |
structure |
/// A |
|
base_offset | long |
/// A |
offset | uint |
/// A |
max_offset | uint |
/// A |
return |
public IFDReader ( |
||
file |
/// A |
|
is_bigendian | bool |
/// A |
structure |
/// A |
|
base_offset | long |
/// A |
ifd_offset | uint |
/// A |
max_offset | uint |
/// A |
return | System |
protected ParseIFDEntry ( ushort tag, ushort type, uint count, long base_offset, uint offset ) : IFDEntry | ||
tag | ushort |
/// A |
type | ushort |
/// A |
count | uint |
/// A |
base_offset | long |
/// A |
offset | uint |
/// A |
return | IFDEntry |
public Read ( int count ) : void | ||
count | int |
/// A |
return | void |