Files
photocatalog/pkg/metadata/jpeg.go
2019-08-04 23:47:12 +03:00

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
}