mirror of
https://github.com/hanzoai/goexif.git
synced 2026-09-30 22:36:24 +00:00
main
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]>
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.
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)
}
Description
EXIF decoder for Go — Hanzo fork of goexif (BSD-2-Clause). Module: github.com/hanzoai/goexif
1.2 MiB
Languages
Go
100%