by rwcarlsen

rwcarlsen / goexif

Decode embedded EXIF meta data from image files.

450 Stars 105 Forks Last release: Not found BSD 2-Clause "Simplified" License 148 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:



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"



func ExampleDecode() { fname := "sample1.jpg"

f, err := os.Open(fname)
if err != nil {

// Optionally register camera makenote data parsing - currently Nikon and
// Canon are supported.

x, err := exif.Decode(f)
if err != nil {

camModel, _ := x.Get(exif.Model) // normally, don't ignore errors!

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.