mirror of
https://github.com/derfenix/photocatalog.git
synced 2026-03-11 21:35:34 +03:00
Initial commit
This commit is contained in:
40
pkg/metadata/jpeg.go
Normal file
40
pkg/metadata/jpeg.go
Normal file
@@ -0,0 +1,40 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user