https://github.com/mpl/goexif
Decode embedded EXIF meta data from image files.
https://github.com/mpl/goexif
Last synced: 6 months ago
JSON representation
Decode embedded EXIF meta data from image files.
- Host: GitHub
- URL: https://github.com/mpl/goexif
- Owner: mpl
- License: bsd-2-clause
- Fork: true (rwcarlsen/goexif)
- Created: 2014-09-23T22:30:54.000Z (almost 12 years ago)
- Default Branch: go1
- Last Pushed: 2018-05-18T17:54:54.000Z (about 8 years ago)
- Last Synced: 2024-06-21T03:18:39.516Z (about 2 years ago)
- Language: Go
- Homepage:
- Size: 1.03 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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 Cash tips welcome: 1DrU5V37nTXuv4vnRLVpahJEjhdATNgoBh
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:
```go
package main
import (
"fmt"
"log"
"os"
"github.com/rwcarlsen/goexif/exif"
"github.com/rwcarlsen/goexif/mknote"
)
func ExampleDecode() {
fname := "sample1.jpg"
f, err := os.Open(fname)
if err != nil {
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) // normally, don't ignore errors!
fmt.Println(camModel.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)
}
```
[](http://githalytics.com/rwcarlsen/goexif)