Units
Class Hierarchy
Classes, Interfaces, Objects and Records
Types
Variables
Constants
Functions and Procedures
Identifiers
xomTif
type TTif = class(TXOMObject)
TTif
procedure AfterConstruction; override;
procedure BeforeDestruction; override;
procedure Assign (ASource: TObject); override;
class function IsJpegStream(AStream: TStream): Boolean; virtual;
class function IsTIFFStream(AStream: TStream): Boolean; virtual;
class function IsBitmapStream(AStream: TStream): Boolean; virtual;
class function ExifPhotoDateFromFile(const AFileName: WideString): TDateTime;
class function IgnoreExifOrientation(const AFileName: WideString): Boolean;
function IsJpeg: Boolean;
function IsPng: Boolean;
function IsWebP: Boolean;
function IsTif: Boolean;
function IsX3F: Boolean;
function IsAVI: Boolean;
function IsCrw: Boolean;
function IsCr2: Boolean;
function IsCr3: Boolean;
function IsArw: Boolean;
function IsHeic: Boolean;
function IsMP4: Boolean;
function IsMov: Boolean;
function IsAFPhoto: Boolean;
function IsQuickTime: Boolean;
function IsNef: Boolean;
function IsRaw: Boolean;
function IsRaf: Boolean;
function IsPsp: Boolean;
function IsDng: Boolean;
function IsDng_ProRAW: Boolean;
function IsPhotoshopFileFormat: Boolean;
function CanUpdateExif(const AAllowRAWMetaWriting: Boolean = False): Boolean;
function WritesQuickTimeXMP: Boolean;
procedure LoadExifFromStream(AStream: TStream; const AQuick: Boolean); virtual;
procedure SaveExifToStream(AStream: TStream); virtual;
procedure Load(const Silent: Boolean; const AQuick: Boolean = False);
procedure Save;
procedure SaveTifToStream (AStream: TStream; const AByteOrder: TTifByteOrder = tboIntel; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0);
procedure SaveTifHeaderToStream (AStream: TStream; const AByteOrder: TTifByteOrder);
procedure SaveTagsToStream (AStream: TStream; const AByteOrder: TTifByteOrder; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0; const AWithTifStrips: Boolean = False);
procedure _UpdateTags(ATargetStream: TStream = nil);
procedure UpdateTags;
procedure ReadTifFromStream (AStream: TStream; const AStreamOffset: Int64 = 0; const AQuick: Boolean = False; const ACheckVersion: Boolean = True; ADataStream: TStream = nil);
procedure ReadJpgFromStream (AStream: TStream; const AQuick: Boolean = False);
function IsMultiLayerTif: Boolean;
procedure SaveToFile (const AFileName: WideString); reintroduce;
procedure LoadFromFile (const AFileName: WideString); reintroduce;
procedure WriteToFile (const AFileName: WideString);
procedure WriteToStream (const AFileName: WideString; AStream: TStream);
function WriteGraphicFile (AGraphic: TGraphic; const AFileName: WideString; const ADoAjustSize: Boolean = True; const AResolution: Integer = -1; const AMaxFileSize: Cardinal = 0): Boolean;
procedure AdjustResolution(AResolutionPerInch: Integer);
procedure Reset;
function FindTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): TTifTag;
function FindValue (const AValue: WideString): TTifTag;
function FindExifValue (const AValue: WideString): TTifTag;
function FindIPTCValue (const AValue: WideString): TTifTag;
function FindGPSValue (const AValue: WideString): TTifTag;
function HasMetaData: Boolean;
function HasExif: Boolean;
function HasExifThumb: Boolean;
function HasIPTC: Boolean;
function HasPhotoshop: Boolean;
function HasGPS: Boolean;
function HasXMP: Boolean;
function HasJPGComment: Boolean;
function _CacheID: WideString;
procedure RemoveFromCache (const AId: WideString = '');
function CreateExif: TTifTag;
function RemoveTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Boolean;
function RemoveExif: Boolean;
function RemoveIptc: Boolean;
function RemoveXMP: Boolean;
function RemoveGps: Boolean;
function RemoveThumbnail: Boolean;
function RemoveICM: Boolean;
function RemoveMakerNotes: Boolean;
function CameraMake: WideString;
function CameraModel: WideString;
function PhotoDate(var AOffset: WideString): WideString;
function PhotoBaseDate(var AOffset: WideString): WideString;
function PhotoDateOriginal(var AOffset: WideString): WideString;
function PhotoDateDigitized(var AOffset: WideString): WideString;
function PhotoExifDate: TDateTime;
function PhotoExifBaseDate: TDateTime;
function PhotoExifDateOriginal: TDateTime;
function PhotoExifDateDigitized: TDateTime;
function RawDimensions(var W, H: Integer): WideString;
function Dimensions: WideString;
function BitsPerSample: Integer;
function WhiteBalanceTemp: Integer;
function ColorSpace: WideString;
function CameraSerialNumber: WideString;
procedure JpegDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
function JpegDynamicDimensions: WideString;
procedure PngDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
function PngDynamicDimensions: WideString;
procedure WebPDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
function WebPDynamicDimensions: WideString;
function RawDynamicDimensions: WideString;
function ISOValue: WideString;
function LensInformation: WideString;
function LensSpecification: WideString;
function ExposureTime: WideString;
function ExposureProgram: WideString;
function TagValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): WideString;
function TagValueRaw (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
function TagValueRawValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
function TagValueByName ( ATagName: WideString; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AFromLensInfo: Boolean = False): WideString;
function TotalTagDataSize: Int64;
function ShortExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
function ShorterExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
procedure LongExifStrings (AResult: TxomStrings; ACustoms: TxomStrings = nil);
function LongExifString (ACustoms: TxomStrings = nil): WideString;
procedure DumpExif (Full: TxomStrings; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AShowUnknown: Boolean = False);
procedure SyncToTif (ATif2: TTif);
function FindEmbeddedColorProfileTag: TTifTag;
function EmbeddedColorProfileName(const AOnlyRGB: Boolean = True): WideString;
function HasEmbeddedColorProfile: Boolean;
procedure UpdateEmbeddedColorProfile (AStream: TStream);
procedure ExtractEmbeddedColorProfile (AStream: TStream);
procedure RemoveEmbeddedColorProfile;
procedure RemoveOversizedTags (const ASizeLimit: Integer = 2048);
property ThumbStream: TDataMemoryStream read GetThumbStream;
property LargestThumbStream: TDataMemoryStream read GetLargestThumbStream;
property DataSizeLimit: Integer read FDataSizeLimit write FDataSizeLimit;
property Referenced: Boolean read FReferenced write FReferenced;
property ReadSpecificTags: TTifTags read FReadSpecificTags write FReadSpecificTags;
property JpgComment: TMemoryStream read FJpgComment write FJpgComment;
property JPGCommentString: WideString read GetJPGCommentString write SetJPGCommentString;
property UseCache: TTifCacheSettings read FUseCache write FUseCache;
property Data: Pointer read FData write FData;
property LoadX3FPreview: Boolean read FLoadX3FPreview write FLoadX3FPreview;
property FileName: WideString read FFileName write FFileName;
property ByteOrder: TTifByteOrder read FByteOrder write FByteOrder;
property IFDs: TTifIFDs read FIFDs write FIFDs;
property ExifIFD: TTifIFD read FExifIFD write FExifIFD;
property ExifInterIFD: TTifIFD read FExifInterIFD write FExifInterIFD;
property PhotoshopIFD: TTifIFD read FPhotoshopIFD write FPhotoshopIFD;
property ExifMarkerNotesIFD: TTifIFD read FExifMarkerNotesIFD write FExifMarkerNotesIFD;
property GPSIFD: TTifIFD read FGPSIFD write FGPSIFD;
property IPTCIFD: TTifIFD read FIPTCIFD write FIPTCIFD;
property IPTCResources: TIPTCResources read FIptcResources write FIptcResources;
property XMPData: TxomStringList read FXMPData write FXMPData;
property ImgDimensions: WideString read FDimensions write FDimensions;
property FullDng: Boolean read FFullDng write FFullDng;
property WithSubIFDs: Boolean read FWithSubIFDs write FWithSubIFDs;
property Exif: TTifIFD read FExifIFD;
property IPTC: TTifIFD read FIPTCIFD;
property MakerNotes: TTifIFD read FExifMarkerNotesIFD;
property GPS: TTifIFD read FGPSIFD;
property VideoHeader: TTifVideoHeader read FVideoHeader write FVideoHeader;
easy access for scripting