Documentation
¶
Index ¶
- func DetermineEndianess(data []byte, offset int) (binary.ByteOrder, error)
- func ExtractExtXMPData(data []byte, extId string) (string, error)
- func ExtractXMPData(data []byte) (string, error)
- func FormatExposureTime(num, den uint32) string
- func ParseColourSpace(raw uint16) string
- func ParseComponentsConfiguration(components []uint8) string
- func ParseCompositeImage(raw uint16) string
- func ParseExposureProgram(raw uint16) string
- func ParseFileSource(raw uint8) string
- func ParseFlashValue(raw uint16) string
- func ParseLightSource(raw uint16) string
- func ParseMeteringMode(raw uint16) string
- func ParseOrientationValue(raw uint16) string
- func ParseProcessing(raw uint16) string
- func ParseSceneType(raw uint16) string
- func ParseSubjectDistanceRange(raw uint16) string
- func SanitizeBase64String(s string) string
- func SanitizeXMLString(s string) string
- type AuthenticityData
- type AuthorshipData
- type CameraSettings
- type ContainerItem
- type DeviceData
- type GPSExif
- type IFDEntry
- type ImageProperties
- type MakerNoteData
- type PhotoExifEvidence
- type ProcessingData
- type Tag
- type TemporalData
- type ValueExtractor
- func (e *ValueExtractor) DecodeXMPMeta(inXml []byte) XmpMeta
- func (e *ValueExtractor) GetByteArray(entry IFDEntry, entryOffset int) []byte
- func (e *ValueExtractor) GetCompositeImageCount(entry IFDEntry, entryOffset int) (uint16, uint16)
- func (e *ValueExtractor) GetGPSCoord(entry IFDEntry) float64
- func (e *ValueExtractor) GetRational(entry IFDEntry, nestedOffset int, signed bool) float64
- func (e *ValueExtractor) GetRationalParts(entry IFDEntry, nestedOffset int) (uint32, uint32)
- func (e *ValueExtractor) GetString(entry IFDEntry, entryOffset int) string
- func (e *ValueExtractor) GetUTF16LEString(entry IFDEntry, entryOffset int) string
- func (e *ValueExtractor) GetUint16(entryOffset int) uint16
- func (e *ValueExtractor) GetUint32(entryOffset int) uint32
- func (e *ValueExtractor) GetUint32Array(entry IFDEntry, count int) []uint32
- func (e *ValueExtractor) GetUint8(entryOffset int) uint8
- func (e *ValueExtractor) GetUint8Array(entryOffset, numSlices int) []uint8
- func (e *ValueExtractor) GetUserComment(entry IFDEntry, entryOffset int) string
- func (e *ValueExtractor) GetVersion(entry IFDEntry, entryOffset int) string
- type XmpMeta
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DetermineEndianess ¶
func ExtractXMPData ¶
func FormatExposureTime ¶
func ParseColourSpace ¶
func ParseCompositeImage ¶
func ParseExposureProgram ¶
func ParseFileSource ¶
func ParseFlashValue ¶
func ParseLightSource ¶
func ParseMeteringMode ¶
func ParseOrientationValue ¶
func ParseProcessing ¶
ParseProcessing for Contrast, Saturation, and Sharpness
func ParseSceneType ¶
func SanitizeBase64String ¶
func SanitizeXMLString ¶
Types ¶
type AuthenticityData ¶
type AuthenticityData struct {
ImageUniqueID string `json:"imageUniqueID"`
MakerNote MakerNoteData `json:"makerNote"`
RelatedSoundFile string `json:"relatedSoundFile"`
}
AuthenticityData Authenticity and integrity markers
type AuthorshipData ¶
type AuthorshipData struct {
Artist string `json:"artist"`
Copyright string `json:"copyright"`
ImageDescription string `json:"imageDescription"`
XPTitle string `json:"xpTitle"`
XPComment string `json:"xpComment"`
XPAuthor string `json:"xpAuthor"`
XPKeywords string `json:"xpKeywords"`
XPSubject string `json:"xpSubject"`
UserComment string `json:"userComment"`
}
AuthorshipData Authorship and chain of custody
type CameraSettings ¶
type CameraSettings struct {
ExposureTime string `json:"exposureTime"`
FNumber float64 `json:"fNumber"`
ExposureProgram string `json:"exposureProgram"`
ISO int `json:"iso"`
FocalLength float64 `json:"focalLength"`
MeteringMode string `json:"meteringMode"`
LightSource string `json:"lightSource"`
FlashFired string `json:"flashFired"`
WhiteBalance string `json:"whiteBalance"`
SceneCaptureType string `json:"sceneCaptureType"`
SubjectDistanceRange string `json:"subjectDistanceRange"`
}
CameraSettings Camera settings used during capture
type ContainerItem ¶
type DeviceData ¶
type DeviceData struct {
Make string `json:"make"`
Model string `json:"model"`
BodySerialNumber string `json:"bodySerialNumber"`
SerialNumber string `json:"serialNumber"`
CameraFirmware string `json:"cameraFirmware"`
LensInfo string `json:"lensInfo"`
LensMake string `json:"lensMake"`
LensModel string `json:"lensModel"`
LensSerialNumber string `json:"lensSerialNumber"`
}
DeviceData Device identification data
type GPSExif ¶
type GPSExif struct {
Version string `json:"version"`
Altitude float64 `json:"altitude"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Timestamp time.Time `json:"timestamp"`
Speed string `json:"speed"`
Direction string `json:"direction"`
MapDatum string `json:"mapDatum"`
DestinationLatitude float64 `json:"destinationLatitude"`
DestinationLongitude float64 `json:"destinationLongitude"`
DestinationBearing string `json:"destinationBearing"`
DestinationDistance string `json:"destinationDistance"`
ProcessingMethod string `json:"processingMethod"`
Differential string `json:"differential"`
}
type ImageProperties ¶
type ImageProperties struct {
Width int `json:"width"`
Height int `json:"height"`
PixelXDimension float64 `json:"pixelXDimension"`
PixelYDimension float64 `json:"pixelYDimension"`
Orientation string `json:"orientation"`
ColorSpace string `json:"colorSpace"`
ComponentsConfig string `json:"componentsConfiguration"`
FileSource string `json:"fileSource"`
SceneType string `json:"sceneType"`
ExifVersion string `json:"exifVersion"`
FlashpixVersion string `json:"flashpixVersion"`
}
ImageProperties Image dimensions and properties
type MakerNoteData ¶
type PhotoExifEvidence ¶
type PhotoExifEvidence struct {
Temporal TemporalData `json:"temporal"`
GPS GPSExif `json:"gps"`
Device DeviceData `json:"device"`
Image ImageProperties `json:"image"`
Camera CameraSettings `json:"camera"`
Processing ProcessingData `json:"processing"`
Authorship AuthorshipData `json:"authorship"`
Authenticity AuthenticityData `json:"authenticity"`
}
type ProcessingData ¶
type ProcessingData struct {
Software string `json:"software"`
ProcessingSoftware string `json:"processingSoftware"`
ImageEditor string `json:"imageEditor"`
DigitalZoomRatio float64 `json:"digitalZoomRatio"`
Contrast string `json:"contrast"`
Saturation string `json:"saturation"`
Sharpness string `json:"sharpness"`
CompositeImage string `json:"compositeImage"`
CompositeImageCount string `json:"compositeImageCount"`
}
ProcessingData Post-processing and manipulation indicators
type TemporalData ¶
type TemporalData struct {
DateCaptured time.Time `json:"dateCaptured"`
CreateDate time.Time `json:"createDate"`
ModifyDate time.Time `json:"modifyDate"`
SubSecTime string `json:"subSecTime"`
SubSecTimeOriginal string `json:"subSecTimeOriginal"`
SubSecTimeDigitized string `json:"subSecTimeDigitized"`
OffsetTime string `json:"offsetTime"`
OffsetTimeOriginal string `json:"offsetTimeOriginal"`
OffsetTimeDigitized string `json:"offsetTimeDigitized"`
}
TemporalData Temporal evidence with full precision
type ValueExtractor ¶
func (*ValueExtractor) DecodeXMPMeta ¶
func (e *ValueExtractor) DecodeXMPMeta(inXml []byte) XmpMeta
func (*ValueExtractor) GetByteArray ¶
func (e *ValueExtractor) GetByteArray(entry IFDEntry, entryOffset int) []byte
func (*ValueExtractor) GetCompositeImageCount ¶
func (e *ValueExtractor) GetCompositeImageCount(entry IFDEntry, entryOffset int) (uint16, uint16)
func (*ValueExtractor) GetGPSCoord ¶
func (e *ValueExtractor) GetGPSCoord(entry IFDEntry) float64
func (*ValueExtractor) GetRational ¶
func (e *ValueExtractor) GetRational(entry IFDEntry, nestedOffset int, signed bool) float64
func (*ValueExtractor) GetRationalParts ¶
func (e *ValueExtractor) GetRationalParts(entry IFDEntry, nestedOffset int) (uint32, uint32)
func (*ValueExtractor) GetString ¶
func (e *ValueExtractor) GetString(entry IFDEntry, entryOffset int) string
func (*ValueExtractor) GetUTF16LEString ¶
func (e *ValueExtractor) GetUTF16LEString(entry IFDEntry, entryOffset int) string
func (*ValueExtractor) GetUint16 ¶
func (e *ValueExtractor) GetUint16(entryOffset int) uint16
func (*ValueExtractor) GetUint32 ¶
func (e *ValueExtractor) GetUint32(entryOffset int) uint32
func (*ValueExtractor) GetUint32Array ¶
func (e *ValueExtractor) GetUint32Array(entry IFDEntry, count int) []uint32
func (*ValueExtractor) GetUint8 ¶
func (e *ValueExtractor) GetUint8(entryOffset int) uint8
func (*ValueExtractor) GetUint8Array ¶
func (e *ValueExtractor) GetUint8Array(entryOffset, numSlices int) []uint8
func (*ValueExtractor) GetUserComment ¶
func (e *ValueExtractor) GetUserComment(entry IFDEntry, entryOffset int) string
func (*ValueExtractor) GetVersion ¶
func (e *ValueExtractor) GetVersion(entry IFDEntry, entryOffset int) string
type XmpMeta ¶
type XmpMeta struct {
XMLName xml.Name `xml:"xmpmeta"`
RDF struct {
XMLName xml.Name `xml:"RDF"`
Description struct {
XMLName xml.Name `xml:"Description"`
Version string `xml:"Version,attr"`
HasExtendedXMP string `xml:"HasExtendedXMP,attr"`
HdrPlusMakerNote string `xml:"HdrPlusMakernote,attr"`
Directory struct {
XMLName xml.Name `xml:"Directory"`
Sequence struct {
XMLName xml.Name `xml:"Seq"`
Items []struct {
XMLName xml.Name `xml:"li"`
ParseType string `xml:"parseType,attr"`
ContainerItem ContainerItem `xml:"Item"`
} `xml:"li"`
} `xml:"Seq"`
} `xml:"Directory"`
} `xml:"Description"`
} `xml:"RDF"`
}
Click to show internal directories.
Click to hide internal directories.