Documentation ¶
Overview ¶
Package exiftool provides functions for scanning for Exif Information and extracting it
Index ¶
- Variables
- type Exif
- type ExifData
- func (e *ExifData) AddIfd(ifd ifds.IFD)
- func (e *ExifData) AddTag(ifd ifds.IFD, ifdIndex int, t tag.Tag)
- func (e *ExifData) Aperture() (float32, error)
- func (e *ExifData) Artist() (artist string, err error)
- func (e *ExifData) CameraMake() (make string)
- func (e *ExifData) CameraModel() (model string)
- func (e *ExifData) CameraSerial() (serial string, err error)
- func (e *ExifData) CanonAFInfo() (afInfo canon.AFInfo, err error)
- func (e *ExifData) CanonCameraSettings() (canon.CameraSettings, error)
- func (e *ExifData) CanonFileInfo() (canon.FileInfo, error)
- func (e *ExifData) CanonShotInfo() (canon.ShotInfo, error)
- func (e *ExifData) Copyright() (copyright string, err error)
- func (e *ExifData) DateTime() (time.Time, error)
- func (e *ExifData) Dimensions() (width, height uint16, err error)
- func (e *ExifData) ExposureBias() (string, error)
- func (e *ExifData) ExposureProgram() (ExposureMode, error)
- func (e *ExifData) Flash() (FlashMode, error)
- func (e *ExifData) FocalLength() (fl FocalLength, err error)
- func (e *ExifData) FocalLengthIn35mmFilm() (fl FocalLength, err error)
- func (e *ExifData) GPSAltitude() (alt float32, err error)
- func (e *ExifData) GPSCellID() (cellID s2.CellID, err error)
- func (e *ExifData) GPSInfo() (lat, lng float64, err error)
- func (e *ExifData) GPSTime() (timestamp time.Time, err error)
- func (e *ExifData) GetTag(ifd ifds.IFD, ifdIndex int, tagID tag.ID) (t tag.Tag, err error)
- func (e *ExifData) ISOSpeed() (iso int, err error)
- func (e *ExifData) LensMake() (make string, err error)
- func (e *ExifData) LensModel() (model string, err error)
- func (e *ExifData) LensSerial() (serial string, err error)
- func (e *ExifData) MeteringMode() (MeteringMode, error)
- func (e *ExifData) ModifyDate() (time.Time, error)
- func (e *ExifData) Orientation() (string, error)
- func (e *ExifData) SetMetadata(m meta.Metadata)
- func (e *ExifData) ShutterSpeed() (ShutterSpeed, error)
- func (e *ExifData) Thumbnail() (offset uint32, size uint32, err error)
- func (e *ExifData) XMLPacket() (str string, err error)
- type ExifReader
- type ExposureBias
- type ExposureMode
- type FlashMode
- type FocalLength
- type GpsInfo
- type MeteringMode
- type ShutterSpeed
Constants ¶
This section is empty.
Variables ¶
var ( // Alias to meta Errors ErrInvalidHeader = meta.ErrInvalidHeader ErrNoExif = meta.ErrNoExif )
Errors
var ( // ErrGpsCoordsNotValid means that some part of the geographic data were unparseable. ErrGpsCoordsNotValid = errors.New("error GPS coordinates not valid") // ErrGPSRationalNotValid means that the rawCoordinates were not long enough. ErrGPSRationalNotValid = errors.New("error GPS Coords requires a raw-coordinate with exactly three rationals") )
var ( // ErrDataLength is an error for data length ErrDataLength = errors.New("error the data is not long enough") // ErrIfdBufferLength ErrIfdBufferLength = errors.New("ifd buffer length insufficient") )
Errors
var ( ErrParseYear = fmt.Errorf("error parsing Year") ErrParseMonth = fmt.Errorf("error parsing Month") ErrParseDay = fmt.Errorf("error parsing Day") ErrParseHour = fmt.Errorf("error parsing Hour") ErrParseMin = fmt.Errorf("error parsing Min") )
Errors for Parsing of Time
var (
ErrEmptyTag = errors.New("error empty tag")
)
API Errors
Functions ¶
This section is empty.
Types ¶
type Exif ¶
type Exif interface { // Aperture convenience func. "IFD/Exif" FNumber Aperture() (float32, error) // Artist convenience func. "IFD" Artist Artist() (artist string, err error) // CameraSerial convenience func. "IFD/Exif" BodySerialNumber CameraSerial() (serial string, err error) // CameraMake convenience func. "IFD" Make CameraMake() (make string) // CameraModel convenience func. "IFD" Model CameraModel() (model string) // Copyright convenience func. "IFD" Copyright Copyright() (copyright string, err error) // Dimensions convenience func. "IFD" Dimensions Dimensions() (width, height uint16, err error) // ExposureBias convenience func. "IFD/Exif" ExposureBiasValue ExposureBias() (string, error) // ExposureProgram convenience func. "IFD/Exif" ExposureProgram ExposureProgram() (ExposureMode, error) // Flash convenience func. "IFD/Exif" Flash Flash() (FlashMode, error) // FocalLength convenience func. "IFD/Exif" FocalLength // Lens Focal Length in mm FocalLength() (fl FocalLength, err error) // FocalLengthIn35mmFilm convenience func. "IFD/Exif" FocalLengthIn35mmFilm // Lens Focal Length Equivalent for 35mm sensor in mm FocalLengthIn35mmFilm() (fl FocalLength, err error) // ISOSpeed convenience func. "IFD/Exif" ISOSpeed ISOSpeed() (iso int, err error) // LensMake convenience func. "IFD/Exif" LensMake LensMake() (make string, err error) // LensModel convenience func. "IFD/Exif" LensModel LensModel() (model string, err error) // LensSerial convenience func. "IFD/Exif" LensSerialNumber LensSerial() (serial string, err error) // MeteringMode convenience func. "IFD/Exif" MeteringMode MeteringMode() (MeteringMode, error) // Orientation convenience func. "IFD" Orientation Orientation() (string, error) // ShutterSpeed convenience func. "IFD/Exif" ExposureTime ShutterSpeed() (ShutterSpeed, error) // XMLPacket convenience func. that returns XMP metadata // from a JPEG image or XMP Packet from "IFD" XMLPacket. // Whichever is present. XMLPacket() (str string, err error) }
Exif is an interface representation of Exif Information
type ExifData ¶
type ExifData struct { Make string Model string XMP string ImageType imagetype.ImageType // contains filtered or unexported fields }
ExifData struct contains the parsed Exif information
func ParseExif ¶
ParseExif parses a tiff header from the io.ReaderAt and returns exif and an error. Sets exif imagetype as imageTypeUnknown
If the header is invalid ParseExif will return ErrInvalidHeader.
func ScanExif ¶
ScanExif identifies the imageType based on magic bytes and searches for exif headers, then it parses the io.ReaderAt for exif information and returns it. Sets exif imagetype from magicbytes, if not found sets imagetype to imagetypeUnknown.
If no exif information is found ScanExif will return ErrNoExif.
func (*ExifData) CameraMake ¶
CameraMake convenience func. "IFD" Make
func (*ExifData) CameraModel ¶
CameraModel convenience func. "IFD" Model
func (*ExifData) CameraSerial ¶
CameraSerial convenience func. "IFD/Exif" BodySerialNumber
func (*ExifData) CanonAFInfo ¶
CanonAFInfo - Canon Camera AutoFocus Information from the Makernote
func (*ExifData) CanonCameraSettings ¶
func (e *ExifData) CanonCameraSettings() (canon.CameraSettings, error)
CanonCameraSettings convenience func. "IFD/Exif/Makernotes.Canon" CanonCameraSettings Canon Camera Settings from the Makernote
func (*ExifData) CanonFileInfo ¶
CanonFileInfo convenience func. "IFD/Exif/Makernotes.Canon" CanonFileInfo Canon Camera File Info from the Makernote
func (*ExifData) CanonShotInfo ¶
CanonShotInfo convenience func. "IFD/Exif/Makernotes.Canon" CanonShotInfo Canon Camera Shot Info from the Makernote
func (*ExifData) DateTime ¶
DateTime - the date and time at which the EXIF file was created with sub-second precision
func (*ExifData) Dimensions ¶
Dimensions convenience func. "IFD" Dimensions
func (*ExifData) ExposureBias ¶
ExposureBias convenience func. "IFD/Exif" ExposureBiasValue TODO: Add ExposureBias Function
func (*ExifData) ExposureProgram ¶
func (e *ExifData) ExposureProgram() (ExposureMode, error)
ExposureProgram convenience func. "IFD/Exif" ExposureProgram
func (*ExifData) FocalLength ¶
func (e *ExifData) FocalLength() (fl FocalLength, err error)
FocalLength convenience func. "IFD/Exif" FocalLength Lens Focal Length in mm
func (*ExifData) FocalLengthIn35mmFilm ¶
func (e *ExifData) FocalLengthIn35mmFilm() (fl FocalLength, err error)
FocalLengthIn35mmFilm convenience func. "IFD/Exif" FocalLengthIn35mmFilm Lens Focal Length Equivalent for 35mm sensor in mm
func (*ExifData) GPSAltitude ¶
GPSAltitude convenience func. "IFD/GPS" GPSAltitude WIP
func (*ExifData) GPSCellID ¶
GPSCellID convenience func. retrieves "IFD/GPS" GPSLatitude and GPSLongitude converts them into an S2 CellID and returns the CellID.
If the CellID is not valid it returns ErrGpsCoordsNotValid.
func (*ExifData) LensSerial ¶
LensSerial convenience func. "IFD/Exif" LensSerialNumber
func (*ExifData) MeteringMode ¶
func (e *ExifData) MeteringMode() (MeteringMode, error)
MeteringMode convenience func. "IFD/Exif" MeteringMode
func (*ExifData) ModifyDate ¶
ModifyDate - the date and time at which the Exif file was modified
func (*ExifData) Orientation ¶
Orientation convenience func. "IFD" Orientation TODO: Add Orientation Function
func (*ExifData) SetMetadata ¶
SetMetadata sets the imagetype metadata in exif
func (*ExifData) ShutterSpeed ¶
func (e *ExifData) ShutterSpeed() (ShutterSpeed, error)
ShutterSpeed convenience func. "IFD/Exif" ExposureTime
type ExifReader ¶
type ExifReader struct {
// contains filtered or unexported fields
}
ExifReader -
func (*ExifReader) ByteOrder ¶
func (er *ExifReader) ByteOrder() binary.ByteOrder
ByteOrder returns the ExifReader's byteOrder
func (*ExifReader) Read ¶
func (er *ExifReader) Read(p []byte) (n int, err error)
Read reads from ExifReader and moves the placement marker
func (ExifReader) ReadAt ¶
func (er ExifReader) ReadAt(p []byte, off int64) (n int, err error)
ReadAt reads from ExifReader at the given offset
func (*ExifReader) SetHeader ¶
func (er *ExifReader) SetHeader(header meta.TiffHeader) error
SetHeader sets the ByteOrder, exifOffset and exifLength of an ExifReader from a TiffHeader and sets the ExifReader read offset to 0
type ExposureBias ¶
type ExposureBias [2]int16
ExposureBias - [0] Numerator [1] Denominator
func (ExposureBias) MarshalJSON ¶
func (eb ExposureBias) MarshalJSON() ([]byte, error)
MarshalJSON - Custom Marshall JSON
func (ExposureBias) String ¶
func (eb ExposureBias) String() string
String - String value of Exposure Bias
type ExposureMode ¶
type ExposureMode uint8
ExposureMode - Mode in which the Exposure was taken.
func (ExposureMode) String ¶
func (em ExposureMode) String() string
String - Return Exposure Mode as a string
type FlashMode ¶
type FlashMode uint8
FlashMode - Mode in which a Flash was used. (uint8) - value of FlashMode
type FocalLength ¶
type FocalLength float32
FocalLength - Focal Length in which the image was captured
func (FocalLength) String ¶
func (fl FocalLength) String() string
type GpsInfo ¶
GpsInfo encapsulates all of the geographic information in one place.
type MeteringMode ¶
type MeteringMode uint8
MeteringMode - Mode in which the image was metered.
func (MeteringMode) String ¶
func (mm MeteringMode) String() string
String - Return Metering Mode as a string
MeteringMode values Derived from https://sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html (23/09/2019)
type ShutterSpeed ¶
type ShutterSpeed [2]uint32
ShutterSpeed - [0] Numerator [1] Denominator
func (ShutterSpeed) MarshalJSON ¶
func (ss ShutterSpeed) MarshalJSON() ([]byte, error)
MarshalJSON - Custom Marshall JSON
func (ShutterSpeed) String ¶
func (ss ShutterSpeed) String() string
String - return a ShutterSpeed as a string
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package main provides an example command
|
Package main provides an example command |
Package ifds provides types and functions for decoding tiff Ifds
|
Package ifds provides types and functions for decoding tiff Ifds |
exififd
Package exififd provides types for "RootIfd/ExifIfd"
|
Package exififd provides types for "RootIfd/ExifIfd" |
gpsifd
Package gpsifd provides types for "RootIfd/GPSIfd"
|
Package gpsifd provides types for "RootIfd/GPSIfd" |
mknote
Package mknote provides functions and types for decoding Exif Makernote values
|
Package mknote provides functions and types for decoding Exif Makernote values |
mknote/canon
Package canon provides functions for decoding of canon makernote values
|
Package canon provides functions for decoding of canon makernote values |
Package imagetype provides types and functions for identifying Image document types
|
Package imagetype provides types and functions for identifying Image document types |
Package meta provides a Metadata interface for interpreting metadata from different image types such as JPEG, TIFF, HEIF.
|
Package meta provides a Metadata interface for interpreting metadata from different image types such as JPEG, TIFF, HEIF. |
xmlmeta
Package xmlmeta provides types and functions for identifying and decoding image xml information as well as xmp files.
|
Package xmlmeta provides types and functions for identifying and decoding image xml information as well as xmp files. |
Package tag provides types and functions for decoding Exif Tags
|
Package tag provides types and functions for decoding Exif Tags |