Class TTif

Unit

Declaration

type TTif = class(TXOMObject)

Description

TTif

Hierarchy

  • TXOMObject
  • TTif

Overview

Methods

Public procedure AfterConstruction; override;
Public procedure BeforeDestruction; override;
Public procedure Assign (ASource: TObject); override;
Public class function IsJpegStream(AStream: TStream): Boolean; virtual;
Public class function IsTIFFStream(AStream: TStream): Boolean; virtual;
Public class function IsBitmapStream(AStream: TStream): Boolean; virtual;
Public class function ExifPhotoDateFromFile(const AFileName: WideString): TDateTime;
Public class function IgnoreExifOrientation(const AFileName: WideString): Boolean;
Public function IsJpeg: Boolean;
Public function IsPng: Boolean;
Public function IsWebP: Boolean;
Public function IsTif: Boolean;
Public function IsX3F: Boolean;
Public function IsAVI: Boolean;
Public function IsCrw: Boolean;
Public function IsCr2: Boolean;
Public function IsCr3: Boolean;
Public function IsArw: Boolean;
Public function IsHeic: Boolean;
Public function IsMP4: Boolean;
Public function IsMov: Boolean;
Public function IsAFPhoto: Boolean;
Public function IsQuickTime: Boolean;
Public function IsNef: Boolean;
Public function IsRaw: Boolean;
Public function IsRaf: Boolean;
Public function IsPsp: Boolean;
Public function IsDng: Boolean;
Public function IsDng_ProRAW: Boolean;
Public function IsPhotoshopFileFormat: Boolean;
Public function CanUpdateExif(const AAllowRAWMetaWriting: Boolean = False): Boolean;
Public function WritesQuickTimeXMP: Boolean;
Public procedure LoadExifFromStream(AStream: TStream; const AQuick: Boolean); virtual;
Public procedure SaveExifToStream(AStream: TStream); virtual;
Public procedure Load(const Silent: Boolean; const AQuick: Boolean = False);
Public procedure Save;
Public procedure SaveTifToStream (AStream: TStream; const AByteOrder: TTifByteOrder = tboIntel; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0);
Public procedure SaveTifHeaderToStream (AStream: TStream; const AByteOrder: TTifByteOrder);
Public procedure SaveTagsToStream (AStream: TStream; const AByteOrder: TTifByteOrder; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0; const AWithTifStrips: Boolean = False);
Public procedure _UpdateTags(ATargetStream: TStream = nil);
Public procedure UpdateTags;
Public procedure ReadTifFromStream (AStream: TStream; const AStreamOffset: Int64 = 0; const AQuick: Boolean = False; const ACheckVersion: Boolean = True; ADataStream: TStream = nil);
Public procedure ReadJpgFromStream (AStream: TStream; const AQuick: Boolean = False);
Public function IsMultiLayerTif: Boolean;
Public procedure SaveToFile (const AFileName: WideString); reintroduce;
Public procedure LoadFromFile (const AFileName: WideString); reintroduce;
Public procedure WriteToFile (const AFileName: WideString);
Public procedure WriteToStream (const AFileName: WideString; AStream: TStream);
Public function WriteGraphicFile (AGraphic: TGraphic; const AFileName: WideString; const ADoAjustSize: Boolean = True; const AResolution: Integer = -1; const AMaxFileSize: Cardinal = 0): Boolean;
Public procedure AdjustResolution(AResolutionPerInch: Integer);
Public procedure Reset;
Public function FindTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): TTifTag;
Public function FindValue (const AValue: WideString): TTifTag;
Public function FindExifValue (const AValue: WideString): TTifTag;
Public function FindIPTCValue (const AValue: WideString): TTifTag;
Public function FindGPSValue (const AValue: WideString): TTifTag;
Public function HasMetaData: Boolean;
Public function HasExif: Boolean;
Public function HasExifThumb: Boolean;
Public function HasIPTC: Boolean;
Public function HasPhotoshop: Boolean;
Public function HasGPS: Boolean;
Public function HasXMP: Boolean;
Public function HasJPGComment: Boolean;
Public function _CacheID: WideString;
Public procedure RemoveFromCache (const AId: WideString = '');
Public function CreateExif: TTifTag;
Public function RemoveTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Boolean;
Public function RemoveExif: Boolean;
Public function RemoveIptc: Boolean;
Public function RemoveXMP: Boolean;
Public function RemoveGps: Boolean;
Public function RemoveThumbnail: Boolean;
Public function RemoveICM: Boolean;
Public function RemoveMakerNotes: Boolean;
Public function CameraMake: WideString;
Public function CameraModel: WideString;
Public function PhotoDate(var AOffset: WideString): WideString;
Public function PhotoBaseDate(var AOffset: WideString): WideString;
Public function PhotoDateOriginal(var AOffset: WideString): WideString;
Public function PhotoDateDigitized(var AOffset: WideString): WideString;
Public function PhotoExifDate: TDateTime;
Public function PhotoExifBaseDate: TDateTime;
Public function PhotoExifDateOriginal: TDateTime;
Public function PhotoExifDateDigitized: TDateTime;
Public function RawDimensions(var W, H: Integer): WideString;
Public function Dimensions: WideString;
Public function BitsPerSample: Integer;
Public function WhiteBalanceTemp: Integer;
Public function ColorSpace: WideString;
Public function CameraSerialNumber: WideString;
Public procedure JpegDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
Public function JpegDynamicDimensions: WideString;
Public procedure PngDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
Public function PngDynamicDimensions: WideString;
Public procedure WebPDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
Public function WebPDynamicDimensions: WideString;
Public function RawDynamicDimensions: WideString;
Public function ISOValue: WideString;
Public function LensInformation: WideString;
Public function LensSpecification: WideString;
Public function ExposureTime: WideString;
Public function ExposureProgram: WideString;
Public function TagValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): WideString;
Public function TagValueRaw (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
Public function TagValueRawValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
Public function TagValueByName ( ATagName: WideString; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AFromLensInfo: Boolean = False): WideString;
Public function TotalTagDataSize: Int64;
Public function ShortExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
Public function ShorterExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
Public procedure LongExifStrings (AResult: TxomStrings; ACustoms: TxomStrings = nil);
Public function LongExifString (ACustoms: TxomStrings = nil): WideString;
Public procedure DumpExif (Full: TxomStrings; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AShowUnknown: Boolean = False);
Public procedure SyncToTif (ATif2: TTif);
Public function FindEmbeddedColorProfileTag: TTifTag;
Public function EmbeddedColorProfileName(const AOnlyRGB: Boolean = True): WideString;
Public function HasEmbeddedColorProfile: Boolean;
Public procedure UpdateEmbeddedColorProfile (AStream: TStream);
Public procedure ExtractEmbeddedColorProfile (AStream: TStream);
Public procedure RemoveEmbeddedColorProfile;
Public procedure RemoveOversizedTags (const ASizeLimit: Integer = 2048);

Properties

Public property ThumbStream: TDataMemoryStream read GetThumbStream;
Public property LargestThumbStream: TDataMemoryStream read GetLargestThumbStream;
Public property DataSizeLimit: Integer read FDataSizeLimit write FDataSizeLimit;
Public property Referenced: Boolean read FReferenced write FReferenced;
Public property ReadSpecificTags: TTifTags read FReadSpecificTags write FReadSpecificTags;
Public property JpgComment: TMemoryStream read FJpgComment write FJpgComment;
Public property JPGCommentString: WideString read GetJPGCommentString write SetJPGCommentString;
Public property UseCache: TTifCacheSettings read FUseCache write FUseCache;
Public property Data: Pointer read FData write FData;
Public property LoadX3FPreview: Boolean read FLoadX3FPreview write FLoadX3FPreview;
Published property FileName: WideString read FFileName write FFileName;
Published property ByteOrder: TTifByteOrder read FByteOrder write FByteOrder;
Published property IFDs: TTifIFDs read FIFDs write FIFDs;
Published property ExifIFD: TTifIFD read FExifIFD write FExifIFD;
Published property ExifInterIFD: TTifIFD read FExifInterIFD write FExifInterIFD;
Published property PhotoshopIFD: TTifIFD read FPhotoshopIFD write FPhotoshopIFD;
Published property ExifMarkerNotesIFD: TTifIFD read FExifMarkerNotesIFD write FExifMarkerNotesIFD;
Published property GPSIFD: TTifIFD read FGPSIFD write FGPSIFD;
Published property IPTCIFD: TTifIFD read FIPTCIFD write FIPTCIFD;
Published property IPTCResources: TIPTCResources read FIptcResources write FIptcResources;
Published property XMPData: TxomStringList read FXMPData write FXMPData;
Published property ImgDimensions: WideString read FDimensions write FDimensions;
Published property FullDng: Boolean read FFullDng write FFullDng;
Published property WithSubIFDs: Boolean read FWithSubIFDs write FWithSubIFDs;
Published property Exif: TTifIFD read FExifIFD;
Published property IPTC: TTifIFD read FIPTCIFD;
Published property MakerNotes: TTifIFD read FExifMarkerNotesIFD;
Published property GPS: TTifIFD read FGPSIFD;
Published property VideoHeader: TTifVideoHeader read FVideoHeader write FVideoHeader;

Description

Methods

Public procedure AfterConstruction; override;
 
Public procedure BeforeDestruction; override;
 
Public procedure Assign (ASource: TObject); override;
 
Public class function IsJpegStream(AStream: TStream): Boolean; virtual;
 
Public class function IsTIFFStream(AStream: TStream): Boolean; virtual;
 
Public class function IsBitmapStream(AStream: TStream): Boolean; virtual;
 
Public class function ExifPhotoDateFromFile(const AFileName: WideString): TDateTime;
 
Public class function IgnoreExifOrientation(const AFileName: WideString): Boolean;
 
Public function IsJpeg: Boolean;
 
Public function IsPng: Boolean;
 
Public function IsWebP: Boolean;
 
Public function IsTif: Boolean;
 
Public function IsX3F: Boolean;
 
Public function IsAVI: Boolean;
 
Public function IsCrw: Boolean;
 
Public function IsCr2: Boolean;
 
Public function IsCr3: Boolean;
 
Public function IsArw: Boolean;
 
Public function IsHeic: Boolean;
 
Public function IsMP4: Boolean;
 
Public function IsMov: Boolean;
 
Public function IsAFPhoto: Boolean;
 
Public function IsQuickTime: Boolean;
 
Public function IsNef: Boolean;
 
Public function IsRaw: Boolean;
 
Public function IsRaf: Boolean;
 
Public function IsPsp: Boolean;
 
Public function IsDng: Boolean;
 
Public function IsDng_ProRAW: Boolean;
 
Public function IsPhotoshopFileFormat: Boolean;
 
Public function CanUpdateExif(const AAllowRAWMetaWriting: Boolean = False): Boolean;
 
Public function WritesQuickTimeXMP: Boolean;
 
Public procedure LoadExifFromStream(AStream: TStream; const AQuick: Boolean); virtual;
 
Public procedure SaveExifToStream(AStream: TStream); virtual;
 
Public procedure Load(const Silent: Boolean; const AQuick: Boolean = False);
 
Public procedure Save;
 
Public procedure SaveTifToStream (AStream: TStream; const AByteOrder: TTifByteOrder = tboIntel; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0);
 
Public procedure SaveTifHeaderToStream (AStream: TStream; const AByteOrder: TTifByteOrder);
 
Public procedure SaveTagsToStream (AStream: TStream; const AByteOrder: TTifByteOrder; const WithIPTC: Boolean = True; const AHeaderOffset: Int64 = 0; const AWithTifStrips: Boolean = False);
 
Public procedure _UpdateTags(ATargetStream: TStream = nil);
 
Public procedure UpdateTags;
 
Public procedure ReadTifFromStream (AStream: TStream; const AStreamOffset: Int64 = 0; const AQuick: Boolean = False; const ACheckVersion: Boolean = True; ADataStream: TStream = nil);
 
Public procedure ReadJpgFromStream (AStream: TStream; const AQuick: Boolean = False);
 
Public function IsMultiLayerTif: Boolean;
 
Public procedure SaveToFile (const AFileName: WideString); reintroduce;
 
Public procedure LoadFromFile (const AFileName: WideString); reintroduce;
 
Public procedure WriteToFile (const AFileName: WideString);
 
Public procedure WriteToStream (const AFileName: WideString; AStream: TStream);
 
Public function WriteGraphicFile (AGraphic: TGraphic; const AFileName: WideString; const ADoAjustSize: Boolean = True; const AResolution: Integer = -1; const AMaxFileSize: Cardinal = 0): Boolean;
 
Public procedure AdjustResolution(AResolutionPerInch: Integer);
 
Public procedure Reset;
 
Public function FindTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): TTifTag;
 
Public function FindValue (const AValue: WideString): TTifTag;
 
Public function FindExifValue (const AValue: WideString): TTifTag;
 
Public function FindIPTCValue (const AValue: WideString): TTifTag;
 
Public function FindGPSValue (const AValue: WideString): TTifTag;
 
Public function HasMetaData: Boolean;
 
Public function HasExif: Boolean;
 
Public function HasExifThumb: Boolean;
 
Public function HasIPTC: Boolean;
 
Public function HasPhotoshop: Boolean;
 
Public function HasGPS: Boolean;
 
Public function HasXMP: Boolean;
 
Public function HasJPGComment: Boolean;
 
Public function _CacheID: WideString;
 
Public procedure RemoveFromCache (const AId: WideString = '');
 
Public function CreateExif: TTifTag;
 
Public function RemoveTag (const ATagNumber: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Boolean;
 
Public function RemoveExif: Boolean;
 
Public function RemoveIptc: Boolean;
 
Public function RemoveXMP: Boolean;
 
Public function RemoveGps: Boolean;
 
Public function RemoveThumbnail: Boolean;
 
Public function RemoveICM: Boolean;
 
Public function RemoveMakerNotes: Boolean;
 
Public function CameraMake: WideString;
 
Public function CameraModel: WideString;
 
Public function PhotoDate(var AOffset: WideString): WideString;
 
Public function PhotoBaseDate(var AOffset: WideString): WideString;
 
Public function PhotoDateOriginal(var AOffset: WideString): WideString;
 
Public function PhotoDateDigitized(var AOffset: WideString): WideString;
 
Public function PhotoExifDate: TDateTime;
 
Public function PhotoExifBaseDate: TDateTime;
 
Public function PhotoExifDateOriginal: TDateTime;
 
Public function PhotoExifDateDigitized: TDateTime;
 
Public function RawDimensions(var W, H: Integer): WideString;
 
Public function Dimensions: WideString;
 
Public function BitsPerSample: Integer;
 
Public function WhiteBalanceTemp: Integer;
 
Public function ColorSpace: WideString;
 
Public function CameraSerialNumber: WideString;
 
Public procedure JpegDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
 
Public function JpegDynamicDimensions: WideString;
 
Public procedure PngDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
 
Public function PngDynamicDimensions: WideString;
 
Public procedure WebPDynamicDimensionsFromStream (AStream: TStream; out AWidth: Integer; out AHeight: Integer);
 
Public function WebPDynamicDimensions: WideString;
 
Public function RawDynamicDimensions: WideString;
 
Public function ISOValue: WideString;
 
Public function LensInformation: WideString;
 
Public function LensSpecification: WideString;
 
Public function ExposureTime: WideString;
 
Public function ExposureProgram: WideString;
 
Public function TagValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): WideString;
 
Public function TagValueRaw (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
 
Public function TagValueRawValue (const ATagNr: Integer; const ATypes: TIFDTypes = [itBase..itMakerNotes]): Variant;
 
Public function TagValueByName ( ATagName: WideString; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AFromLensInfo: Boolean = False): WideString;
 
Public function TotalTagDataSize: Int64;
 
Public function ShortExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
 
Public function ShorterExifString (const ASeparator: WideString = ' '; const AWithTitles: Boolean = False): WideString;
 
Public procedure LongExifStrings (AResult: TxomStrings; ACustoms: TxomStrings = nil);
 
Public function LongExifString (ACustoms: TxomStrings = nil): WideString;
 
Public procedure DumpExif (Full: TxomStrings; const ATypes: TIFDTypes = [itBase..itMakerNotes]; const AShowUnknown: Boolean = False);
 
Public procedure SyncToTif (ATif2: TTif);
 
Public function FindEmbeddedColorProfileTag: TTifTag;
 
Public function EmbeddedColorProfileName(const AOnlyRGB: Boolean = True): WideString;
 
Public function HasEmbeddedColorProfile: Boolean;
 
Public procedure UpdateEmbeddedColorProfile (AStream: TStream);
 
Public procedure ExtractEmbeddedColorProfile (AStream: TStream);
 
Public procedure RemoveEmbeddedColorProfile;
 
Public procedure RemoveOversizedTags (const ASizeLimit: Integer = 2048);
 

Properties

Public property ThumbStream: TDataMemoryStream read GetThumbStream;
 
Public property LargestThumbStream: TDataMemoryStream read GetLargestThumbStream;
 
Public property DataSizeLimit: Integer read FDataSizeLimit write FDataSizeLimit;
 
Public property Referenced: Boolean read FReferenced write FReferenced;
 
Public property ReadSpecificTags: TTifTags read FReadSpecificTags write FReadSpecificTags;
 
Public property JpgComment: TMemoryStream read FJpgComment write FJpgComment;
 
Public property JPGCommentString: WideString read GetJPGCommentString write SetJPGCommentString;
 
Public property UseCache: TTifCacheSettings read FUseCache write FUseCache;
 
Public property Data: Pointer read FData write FData;
 
Public property LoadX3FPreview: Boolean read FLoadX3FPreview write FLoadX3FPreview;
 
Published property FileName: WideString read FFileName write FFileName;
 
Published property ByteOrder: TTifByteOrder read FByteOrder write FByteOrder;
 
Published property IFDs: TTifIFDs read FIFDs write FIFDs;
 
Published property ExifIFD: TTifIFD read FExifIFD write FExifIFD;
 
Published property ExifInterIFD: TTifIFD read FExifInterIFD write FExifInterIFD;
 
Published property PhotoshopIFD: TTifIFD read FPhotoshopIFD write FPhotoshopIFD;
 
Published property ExifMarkerNotesIFD: TTifIFD read FExifMarkerNotesIFD write FExifMarkerNotesIFD;
 
Published property GPSIFD: TTifIFD read FGPSIFD write FGPSIFD;
 
Published property IPTCIFD: TTifIFD read FIPTCIFD write FIPTCIFD;
 
Published property IPTCResources: TIPTCResources read FIptcResources write FIptcResources;
 
Published property XMPData: TxomStringList read FXMPData write FXMPData;
 
Published property ImgDimensions: WideString read FDimensions write FDimensions;
 
Published property FullDng: Boolean read FFullDng write FFullDng;
 
Published property WithSubIFDs: Boolean read FWithSubIFDs write FWithSubIFDs;
 
Published property Exif: TTifIFD read FExifIFD;

easy access for scripting

Published property IPTC: TTifIFD read FIPTCIFD;
 
Published property MakerNotes: TTifIFD read FExifMarkerNotesIFD;
 
Published property GPS: TTifIFD read FGPSIFD;
 
Published property VideoHeader: TTifVideoHeader read FVideoHeader write FVideoHeader;
 

Generated by PasDoc 0.15.0.