diff options
Diffstat (limited to 'vendor/github.com/rwcarlsen/goexif/exifstat/main.go')
-rw-r--r-- | vendor/github.com/rwcarlsen/goexif/exifstat/main.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/github.com/rwcarlsen/goexif/exifstat/main.go b/vendor/github.com/rwcarlsen/goexif/exifstat/main.go new file mode 100644 index 000000000..0b383c9d5 --- /dev/null +++ b/vendor/github.com/rwcarlsen/goexif/exifstat/main.go @@ -0,0 +1,60 @@ +package main + +import ( + "flag" + "fmt" + "log" + "os" + + "github.com/rwcarlsen/goexif/exif" + "github.com/rwcarlsen/goexif/mknote" + "github.com/rwcarlsen/goexif/tiff" +) + +var mnote = flag.Bool("mknote", false, "try to parse makernote data") +var thumb = flag.Bool("thumb", false, "dump thumbail data to stdout (for first listed image file)") + +func main() { + flag.Parse() + fnames := flag.Args() + + if *mnote { + exif.RegisterParsers(mknote.All...) + } + + for _, name := range fnames { + f, err := os.Open(name) + if err != nil { + log.Printf("err on %v: %v", name, err) + continue + } + + x, err := exif.Decode(f) + if err != nil { + log.Printf("err on %v: %v", name, err) + continue + } + + if *thumb { + data, err := x.JpegThumbnail() + if err != nil { + log.Fatal("no thumbnail present") + } + if _, err := os.Stdout.Write(data); err != nil { + log.Fatal(err) + } + return + } + + fmt.Printf("\n---- Image '%v' ----\n", name) + x.Walk(Walker{}) + } +} + +type Walker struct{} + +func (_ Walker) Walk(name exif.FieldName, tag *tiff.Tag) error { + data, _ := tag.MarshalJSON() + fmt.Printf(" %v: %v\n", name, string(data)) + return nil +} |