perkeep/third_party/github.com/camlistore/goexif
mpl 77d044f4b7 schema: add FileTime to guess the file
creation time from potential file metadata.
camput: add the -exiftime option that allows
the use of the above for -filenodes and -vivify.

Fixes: http://code.google.com/p/camlistore/issues/detail?id=77

Change-Id: I05d1af3d875bb984e47e06775fd149e5ed0ed7b1
2013-01-10 17:43:05 +01:00
..
cmd goexif fixes 2012-12-06 18:24:55 +01:00
exif schema: add FileTime to guess the file 2013-01-10 17:43:05 +01:00
tiff goexif: synced with upstream 2012-11-23 11:10:43 +01:00
LICENSE import github.com/camlistore/goexif as a third party 2012-11-19 23:04:04 +01:00
README.md import github.com/camlistore/goexif as a third party 2012-11-19 23:04:04 +01:00

README.md

goexif

Provides decoding of basic exif and tiff encoded data. Still in alpha - no guarantees. Suggestions and pull requests are welcome. Functionality is split into two packages - "exif" and "tiff" The exif package depends on the tiff package. Documentation can be found at http://go.pkgdoc.org/github.com/camlistore/goexif

To install, in a terminal type:

go get github.com/camlistore/goexif/exif

Or if you just want the tiff package:

go get github.com/camlistore/goexif/tiff

Example usage:

package main

import (
  "os"
  "log"
  "fmt"

  "github.com/camlistore/goexif/exif"
)

func main() {
  fname := "sample1.jpg"

  f, err := os.Open(fname)
  if err != nil {
    log.Fatal(err)
  }

  x, err := exif.Decode(f)
  f.Close()
  if err != nil {
    log.Fatal(err)
  }

  camModel, _ := x.Get("Model")
  date, _ := x.Get("DateTimeOriginal")
  fmt.Println(camModel.StringVal())
  fmt.Println(date.StringVal())

  focal, _ := x.Get("FocalLength")
  numer, denom := focal.Rat2(0) // retrieve first (only) rat. value
  fmt.Printf("%v/%v", numer, denom)
}