mirror of
https://github.com/derfenix/photocatalog.git
synced 2026-03-11 11:52:57 +03:00
41 lines
754 B
Go
41 lines
754 B
Go
package metadata
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/rwcarlsen/goexif/exif"
|
|
)
|
|
|
|
// JpegExtractor meta data extractor for the jpeg files
|
|
type JpegExtractor struct {
|
|
}
|
|
|
|
// NewJpegExtractor returns new JpegExtractor
|
|
func NewJpegExtractor() *JpegExtractor {
|
|
return &JpegExtractor{}
|
|
}
|
|
|
|
// Extract returns Metadata from specified jpeg file reading its exif data
|
|
//
|
|
// TODO: Fallback to default extractor on exif reading/parsing error
|
|
func (j *JpegExtractor) Extract(fp string) (Metadata, error) {
|
|
f, err := os.Open(fp)
|
|
if err != nil {
|
|
return Metadata{}, err
|
|
}
|
|
x, err := exif.Decode(f)
|
|
if err != nil {
|
|
return Metadata{}, err
|
|
}
|
|
|
|
time, err := x.DateTime()
|
|
if err != nil {
|
|
return Metadata{}, err
|
|
}
|
|
meta := Metadata{
|
|
Time: time,
|
|
}
|
|
|
|
return meta, nil
|
|
}
|