Image Metadata (Exif and XMP) extraction for JPEG, HEIC, AVIF, TIFF, and Camera Raw in golang. Imagetype identifcation. Zero allocation Perceptual Image Hash. Goal is features that are precise and performance oriented for working with images.
See Documentation for more information.
Example usage:
package main
import (
"fmt"
"os"
"github.com/evanoberholster/imagemeta"
)
f, err := os.Open("image.jpg")
if err != nil {
panic(err)
}
defer f.Close()
e, err := imagemeta.Decode(f)
if err != nil {
panic(err)
}
fmt.Println(e)
Zero allocation PerceptualHash algorithm (64Bit and 256Bit) github.com/evanoberholster/imagemeta/imagehash. Adapted from https://github.com/corona10/goimagehash. Image will need to be resized to 64x64 prior to image hashing.
Issues, Suggestions and Pull Requests are welcome.
See BENCHMARK.md To run your own benchmarks see bench_test.go
Images can be identified with: "github.com/evanoberholster/imagemeta/imagetype" package.
Inspired by Phil Harvey http://exiftool.org, go-exif https://github.com/dsoprea/go-exif, and RW Carlsen https://github.com/rwcarlsen/goexif
Copyright (c) 2020-2023, Evan Oberholster & Contributors