8dfc0d10175c9561e2e4ad9bf9a038bb93600a9d
This is a merge with camlistore.org/third_party/github.com/rwcarlsen/goexif Squash of the following commits: - exif: make DateTime return time.Local location when unknown timezone (https://camlistore.googlesource.com/camlistore/+/a82738064436e5010268616655650ac71855668f) - exif: add Exif.LatLong accessor https://camlistore.googlesource.com/camlistore/+/b6d3d1a1037260b753b914e0c07279811cc76777 - Prevent panic crash due to malformed EXIF geotags (https://camlistore-review.googlesource.com/#/c/3637/5)
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://godoc.org/github.com/rwcarlsen/goexif
Like goexif? - Bitcoin tips welcome: 17w65FVqx196Qp7tfCCSLqyvsHUhiEEa7P
To install, in a terminal type:
go get github.com/rwcarlsen/goexif/exif
Or if you just want the tiff package:
go get github.com/rwcarlsen/goexif/tiff
Example usage:
package main
import (
"os"
"log"
"fmt"
"github.com/rwcarlsen/goexif/exif"
)
func main() {
fname := "sample1.jpg"
f, err := os.Open(fname)
if err != nil {
log.Fatal(err)
}
x, err := exif.Decode(f)
defer f.Close()
if err != nil {
log.Fatal(err)
}
camModel, _ := x.Get(exif.Model)
date, _ := x.Get(exif.DateTimeOriginal)
fmt.Println(camModel.StringVal())
fmt.Println(date.StringVal())
focal, _ := x.Get(exif.FocalLength)
numer, denom := focal.Rat2(0) // retrieve first (only) rat. value
fmt.Printf("%v/%v", numer, denom)
}
Languages
Go
100%