func (a *Album) loadExifInfo(p *Photo, wg *sync.WaitGroup) { defer func() { wg.Done() }() data, err := a.cache.Get(originalCacheKey{p.Filename}) if err != nil { log.Printf("album: error renewing cache for %s: %s", p, err) return } x, err := exif.Decode(bytes.NewReader(data)) if err != nil { log.Printf("album: error reading exif for %s: %s", p, err) return } t, err := x.DateTime() if err != nil { log.Printf("album: error reading exif datetime for %s: %s", p, err) return } p.ExifCreated = t }
func makeExpected(files []string, w io.Writer) { fmt.Fprintf(w, "package exif\n\n") fmt.Fprintf(w, "var regressExpected = map[string]map[FieldName]string{\n") for _, name := range files { f, err := os.Open(name) if err != nil { continue } x, err := exif.Decode(f) if err != nil { f.Close() continue } fmt.Fprintf(w, "\"%v\": map[FieldName]string{\n", filepath.Base(name)) x.Walk(®resswalk{w}) fmt.Fprintf(w, "},\n") f.Close() } fmt.Fprintf(w, "}") }
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{}) } }