Need help with goexif?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

rwcarlsen
479 Stars 112 Forks BSD 2-Clause "Simplified" License 148 Commits 32 Opened issues

Description

Decode embedded EXIF meta data from image files.

Services available

!
?

Need anything else?

Contributors list

goexif

GoDoc

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.

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:

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)

}

githalytics.com alpha

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.