fixed parser-registering order bug and simplified. Expanded example more and made example_test.go file consistent with new readme example

This commit is contained in:
Robert Carlsen
2014-09-16 11:16:55 -05:00
parent 8045b6363b
commit 48af04a88d
2 changed files with 32 additions and 18 deletions
+19 -15
View File
@@ -26,15 +26,15 @@ Example usage:
package main
import (
"os"
"log"
"fmt"
"fmt"
"log"
"os"
"github.com/rwcarlsen/goexif/exif"
"github.com/rwcarlsen/goexif/mknote"
"github.com/rwcarlsen/goexif/exif"
"github.com/rwcarlsen/goexif/mknote"
)
func main() {
func ExampleDecode() {
fname := "sample1.jpg"
f, err := os.Open(fname)
@@ -42,24 +42,28 @@ func main() {
log.Fatal(err)
}
// Optionally register camera makenote data parsing - currently Nikon and
// Canon are supported.
exif.RegisterParsers(mknote.All...)
x, err := exif.Decode(f)
// Register Camera make specific parses, currently Nikon and Canon.
for _, parser := range mknote.All {
x.RegisterParsers(parser)
}
defer f.Close()
if err != nil {
log.Fatal(err)
}
camModel, _ := x.Get(exif.Model)
date, _ := x.Get(exif.DateTimeOriginal)
camModel, _ := x.Get(exif.Model) // normally, don't ignore errors!
fmt.Println(camModel.StringVal())
fmt.Println(date.StringVal())
focal, _ := x.Get(exif.FocalLength)
numer, denom := focal.Rat2(0) // retrieve first (only) rat. value
numer, denom, _ := focal.Rat2(0) // retrieve first (only) rat. value
fmt.Printf("%v/%v", numer, denom)
// Two convenience functions exist for date/time taken and GPS coords:
tm, _ := x.DateTime()
fmt.Println("Taken: ", tm)
lat, long, _ := x.LatLong()
fmt.Println("lat, long: ", lat, ", ", long)
}
```
+13 -3
View File
@@ -6,6 +6,7 @@ import (
"os"
"github.com/rwcarlsen/goexif/exif"
"github.com/rwcarlsen/goexif/mknote"
)
func ExampleDecode() {
@@ -16,17 +17,26 @@ func ExampleDecode() {
log.Fatal(err)
}
// Optionally register camera makenote data parsing - currently Nikon and
// Canon are supported.
exif.RegisterParsers(mknote.All...)
x, err := exif.Decode(f)
if err != nil {
log.Fatal(err)
}
camModel, _ := x.Get(exif.Model)
date, _ := x.Get(exif.DateTimeOriginal)
camModel, _ := x.Get(exif.Model) // normally, don't ignore errors!
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)
// Two convenience functions exist for date/time taken and GPS coords:
tm, _ := x.DateTime()
fmt.Println("Taken: ", tm)
lat, long, _ := x.LatLong()
fmt.Println("lat, long: ", lat, ", ", long)
}