mirror of
https://github.com/hanzoai/goexif.git
synced 2026-09-30 22:36:24 +00:00
Add makernote parsing to example. Improved example generally.
This commit is contained in:
@@ -26,14 +26,15 @@ Example usage:
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"log"
|
||||
"fmt"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/rwcarlsen/goexif/exif"
|
||||
"github.com/rwcarlsen/goexif/exif"
|
||||
"github.com/rwcarlsen/goexif/mknote"
|
||||
)
|
||||
|
||||
func main() {
|
||||
func ExampleDecode() {
|
||||
fname := "sample1.jpg"
|
||||
|
||||
f, err := os.Open(fname)
|
||||
@@ -41,20 +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)
|
||||
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
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user