zeekayandHanzo Dev f4de1d69ef ci: canonical pair — hanzo.yml + forge caller
github.com has no runner for hanzo-build-linux-amd64, so a caller under
.github/workflows is a gate that can never be scheduled. This is the ~7-line
caller on the plane that can (git.hanzo.ai git-runner fleet), pinned @v1.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-06 02:33:51 -07:00
2026-06-28 20:08:27 -07:00
2020-04-12 15:57:36 -07:00
2012-09-11 16:02:04 -05:00
2026-06-28 20:08:29 -07:00

goexif

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/hanzoai/goexif/exif

Or if you just want the tiff package:

go get github.com/hanzoai/goexif/tiff

Example usage:

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/hanzoai/goexif/exif"
	"github.com/hanzoai/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

S
Description
EXIF decoder for Go — Hanzo fork of goexif (BSD-2-Clause). Module: github.com/hanzoai/goexif
Readme BSD-2-Clause
1.2 MiB
Languages
Go 100%