|
|
|
@ -41,6 +41,12 @@ const
|
|
|
|
|
FULLTAG_EXIFVERSION = TAGPARENT_EXIF or TAG_EXIFVERSION;
|
|
|
|
|
FULLTAG_FOCALLENGTH35mm = TAGPARENT_EXIF or TAG_FOCALLENGTH35mm;
|
|
|
|
|
|
|
|
|
|
EXIFTAG_IMAGEWIDTH = TAGPARENT_EXIF or TAG_IMAGEWIDTH;
|
|
|
|
|
EXIFTAG_IMAGELENGTH = TAGPARENT_EXIF or TAG_IMAGELENGTH;
|
|
|
|
|
EXIFTAG_COMPRESSION = TAGPARENT_EXIF or TAG_COMPRESSION;
|
|
|
|
|
EXIFTAG_MAKE = TAGPARENT_EXIF or TAG_MAKE;
|
|
|
|
|
EXIFTAG_MODEL = TAGPARENT_EXIF or TAG_MODEL;
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
TExifBeginReadingEvent = procedure of object;
|
|
|
|
|
TExifEndReadingEvent = procedure of object;
|
|
|
|
@ -314,13 +320,17 @@ begin
|
|
|
|
|
AddBinaryTag (I+$0002, 'InterOpVersion', 1, rsInterOpVersion, '', '', TVersionTag);
|
|
|
|
|
AddULongTag (P+$00FE, 'SubfileType', 1, '', rsSubfileTypeLkup, '', nil, true);
|
|
|
|
|
AddULongTag (P+$0100, 'ImageWidth', 1, rsImageWidth);
|
|
|
|
|
AddULongTag (E+$0100, 'ImageWidth', 1, rsImageWidth);
|
|
|
|
|
AddULongTag (T+$0100, 'ThumbnailWidth', 1, rsThumbnailWidth);
|
|
|
|
|
AddULongTag (P+$0101, 'ImageHeight', 1, rsImageHeight); // official: "Image length"
|
|
|
|
|
AddULongTag (E+$0101, 'ImageHeight', 1, rsImageHeight); // official: "Image length"
|
|
|
|
|
AddULongTag (T+$0101, 'ThumbnailHeight', 1, rsThumbnailHeight); // official: "Image length"
|
|
|
|
|
AddULongTag (P+$0101, 'ImageLength', 1, rsImageHeight);
|
|
|
|
|
AddULongTag (T+$0101, 'ThumbnailLength', 1, rsThumbnailHeight);
|
|
|
|
|
AddUShortTag (P+$0102, 'BitsPerSample', 1, rsBitsPerSample);
|
|
|
|
|
AddUShortTag (E+$0102, 'BitsPerSample', 1, rsBitsPerSample);
|
|
|
|
|
AddUShortTag (P+$0103, 'Compression', 1, rsCompression, rsCompressionLkup);
|
|
|
|
|
AddUShortTag (E+$0103, 'Compression', 1, rsCompression, rsCompressionLkup);
|
|
|
|
|
AddUShortTag (T+$0103, 'ThumbnailCompression', 1, rsCompression, rsCompressionLkup);
|
|
|
|
|
AddUShortTag (P+$0106, 'PhotometricInterpretation', 1, rsPhotometricInt, rsPhotometricIntLkup);
|
|
|
|
|
AddUShortTag (P+$0107, 'Thresholding', 1, rsThresholding, rsThresholdingLkup);
|
|
|
|
@ -330,9 +340,12 @@ begin
|
|
|
|
|
AddStringTag (P+$010D, 'DocumentName', 1, rsDocumentName);
|
|
|
|
|
AddStringTag (P+$010E, 'ImageDescription', 1, rsImageDescr);
|
|
|
|
|
AddStringTag (P+$010F, 'Make', 1, rsMake);
|
|
|
|
|
AddStringTag (E+$010F, 'Make', 1, rsMake);
|
|
|
|
|
AddStringTag (P+$0110, 'Model', 1, rsModel);
|
|
|
|
|
AddStringTag (E+$0110, 'Model', 1, rsModel);
|
|
|
|
|
AddULongTag (P+$0111, 'StripOffsets', 1, rsStripOffsets);
|
|
|
|
|
AddUShortTag (P+$0112, 'Orientation', 1, rsOrientation, rsOrientationLkup);
|
|
|
|
|
AddUShortTag (E+$0112, 'Orientation', 1, rsOrientation, rsOrientationLkup);
|
|
|
|
|
AddUShortTag (T+$0112, 'Orientation', 1, rsOrientation, rsOrientationLkup);
|
|
|
|
|
AddUShortTag (P+$0115, 'SamplesPerPixel', 1, rsSamplesPerPixel);
|
|
|
|
|
AddULongTag (P+$0116, 'RowsPerStrip', 1, rsRowsPerStrip);
|
|
|
|
@ -340,22 +353,28 @@ begin
|
|
|
|
|
AddUShortTag (P+$0118, 'MinSampleValue', 1, rsMinSampleValue);
|
|
|
|
|
AddUShortTag (P+$0119, 'MaxSampleValue', 1, rsMaxSampleValue);
|
|
|
|
|
AddURationalTag(P+$011A, 'XResolution', 1, rsXResolution);
|
|
|
|
|
AddURationalTag(E+$011A, 'XResolution', 1, rsXResolution);
|
|
|
|
|
AddURationalTag(T+$011A, 'ThumbnailXResolution', 1, rsXResolution);
|
|
|
|
|
AddURationalTag(P+$011B, 'YResolution', 1, rsYResolution);
|
|
|
|
|
AddURationalTag(E+$011B, 'YResolution', 1, rsYResolution);
|
|
|
|
|
AddURationalTag(T+$011B, 'ThumbnailYResolution', 1, rsYResolution);
|
|
|
|
|
AddUShortTag (P+$011C, 'PlanarConfiguration', 1, rsPlanarConfiguration, rsPlanarConfigurationLkup);
|
|
|
|
|
AddStringTag (P+$011D, 'PageName', 1, rsPageName);
|
|
|
|
|
AddURationalTag(P+$011E, 'XPosition', 1, rsXPosition);
|
|
|
|
|
AddURationalTag(P+$011F, 'YPosition', 1, rsYPosition);
|
|
|
|
|
AddUShortTag (P+$0128, 'ResolutionUnit', 1, rsResolutionUnit, rsResolutionUnitLkup);
|
|
|
|
|
AddUShortTag (E+$0128, 'ResolutionUnit', 1, rsResolutionUnit, rsResolutionUnitLkup);
|
|
|
|
|
AddUShortTag (T+$0128, 'ThumbnailResolutionUnit', 1, rsResolutionUnit, rsResolutionUnitLkup);
|
|
|
|
|
AddUShortTag (P+$0129, 'PageNumber', 2, rsPageNumber);
|
|
|
|
|
AddUShortTag (P+$012D, 'TransferFunction', 768, rsTransferFunction);
|
|
|
|
|
AddStringTag (P+$0131, 'Software', 1, rsSoftware);
|
|
|
|
|
AddStringTag (E+$0131, 'Software', 1, rsSoftware);
|
|
|
|
|
AddStringTag (T+$0131, 'Software', 1, rsSoftware);
|
|
|
|
|
AddStringTag (P+$0132, 'DateTime', 1, rsDateTime, '', TDateTimeTag);
|
|
|
|
|
AddStringTag (E+$0132, 'DateTime', 1, rsDateTime, '', TDateTimeTag);
|
|
|
|
|
AddStringTag (T+$0132, 'DateTime', 1, rsDateTime, '', TDateTimeTag);
|
|
|
|
|
AddStringTag (P+$013B, 'Artist', 1, rsArtist);
|
|
|
|
|
AddStringTag (E+$013B, 'Artist', 1, rsArtist);
|
|
|
|
|
AddStringTag (P+$013C, 'HostComputer', 1, rsHostComputer);
|
|
|
|
|
AddUShortTag (P+$013D, 'Predictor', 1, rsPredictor, rsPredictorLkup);
|
|
|
|
|
AddURationalTag(P+$013E, 'WhitePoint', 2, rsWhitePoint);
|
|
|
|
@ -377,6 +396,10 @@ begin
|
|
|
|
|
AddStringTag (I+$1000, 'RelatedImageFileFormat', 1, rsRelatedImageFileFormat);
|
|
|
|
|
AddUShortTag (I+$1001, 'RelatedImageWidth', 1, rsRelatedImageWidth);
|
|
|
|
|
AddUShortTag (I+$1002, 'RelatedImageHeight', 1, rsRelatedImageHeight);
|
|
|
|
|
AddUShortTag (P+$4746, 'Rating', 1, rsRating);
|
|
|
|
|
AddUShortTag (E+$4746, 'Rating', 1, rsRating);
|
|
|
|
|
AddUShortTag (P+$4749, 'RatingPercent', 1, rsRatingPercent);
|
|
|
|
|
AddUShortTag (E+$4749, 'RatingPercent', 1, rsRatingPercent);
|
|
|
|
|
AddStringTag (P+$8298, 'Copyright', 1, rsCopyright);
|
|
|
|
|
AddURationalTag(E+$829A, 'ExposureTime', 1, rsExposureTime, '', '', TExposureTimeTag); //, nil, '%0:.0f/%1:.0f s');
|
|
|
|
|
AddURationalTag(E+$829D, 'FNumber', 1, rsFNumber); //, nil, 'F/%2:.1f');
|
|
|
|
@ -438,7 +461,9 @@ begin
|
|
|
|
|
AddBinaryTag (E+$A000, 'FlashPixVersion', 1, rsFlashPixVersion, '', '', TVersionTag);
|
|
|
|
|
AddUShortTag (E+$A001, 'ColorSpace', 1, rsColorSpace, rsColorSpaceLkup);
|
|
|
|
|
AddUShortTag (E+$A002, 'ExifImageWidth', 1, rsExifImageWidth);
|
|
|
|
|
// AddUShortTag (T+$A002, 'ExifImageWidth', 1, rsExifImageWidth);
|
|
|
|
|
AddUShortTag (E+$A003, 'ExifImageHeight', 1, rsExifImageHeight); // is called "ExifImageLength" in Specs
|
|
|
|
|
// AddUShortTag (T+$A003, 'ExifImageHeight', 1, rsExifImageHeight); // is called "ExifImageLength" in Specs
|
|
|
|
|
AddStringTag (E+$A004, 'RelatedSoundFile', 1, rsRelatedSoundFile);
|
|
|
|
|
AddULongTag (E+$A005, 'InterOperabilityOffset', 1, rsInterOpOffset, '', '', TSubIFDTag, true);
|
|
|
|
|
AddURationalTag(E+$A20B, 'FlashEnergy', 1, rsFlashEnergy);
|
|
|
|
|