Exif.Analyze
type datetime = [
| `EncodedInUnixTime of DateTime.t | (* Photos from some old Androids have non Ascii datetime. They have encoded 32 bit int in Unix time instead! :-( *) |
| `Error of string | |
| `Ok of DateTime.t |
]
val parse_datetime : string -> [> datetime ]
val analyze_ifd : Entry.unpacked_entry -> [> `DateTime of [> datetime ] | `Make of string | `Model of string | `Orientation of [> `BottomLeft | `BottomRight | `LeftBottom | `LeftTop | `RightBottom | `RightTop | `TopLeft | `TopRight ] | `ResolutionUnit of [> `Centimeters | `Inches ] | `Software of Entry.Pack.unpacked | `Unknown of Entry.unpacked_entry | `XResolution of int64 * int64 | `YResolution of int64 * int64 ]
Analyze IFD. The unpacked_entry must come from ifd_0 or ifd_1 sub-IFDs
val analyze_exif : Entry.unpacked_entry -> [> `DateTimeDigitized of [> datetime ] | `DateTimeOriginal of [> datetime ] | `ExifVersion of string | `MakerNote of string | `SubsecTime of string | `SubsecTimeDigitized of string | `SubsecTimeOriginal of string | `Unknown of Entry.unpacked_entry | `UserComment of string ]
Analyze EXIF. The unpacked_entry must come from exif sub-IFD
val analyze_gps : Entry.unpacked_entry -> [> `AboveSeaLevel | `Altitude of int64 * int64 | `BelowSeaLevel | `EastLongitude | `GPSDate of [> `Error of string | `Ok of Date.t ] | `GPSMapDatum of string | `GPSVersion of int * int * int * int | `ImgDirection of int64 * int64 | `ImgDirectionMagnetic | `ImgDirectionTrue | `Latitude of int64 * int64 | `Longitude of int64 * int64 | `NorthLatitude | `SouthLatitude | `TimeStampUTC of float * float * float | `TimeStampUTCinSRationals of float * float * float | `Unknown of Entry.unpacked_entry | `WestLongitude ]
Analyze GPS. The unpacked_entry must come from gps sub-IFD