Giter Club home page Giter Club logo

imagemeta's Introduction

Imagemeta

License Godoc ReportCard Coverage Status Build

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.

Documentation

See Documentation for more information.

Example Usage

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)

Imagehash

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.

Contributing

Issues, Suggestions and Pull Requests are welcome.

Benchmarks

See BENCHMARK.md To run your own benchmarks see bench_test.go

Imagetype Identification

Images can be identified with: "github.com/evanoberholster/imagemeta/imagetype" package.

TODO

  • Stabilize ImageTypes API
  • Add Exif parsing for individual image types (jpg, heic, cr2, tiff, dng)
  • Add CR3 and Heic image metadata support.
  • Add Avif image metadata support
  • Add Canon Exif Makernote support
  • Add Nikon Exif Makernote support
  • Add Camera Make and Model Lookup tables
  • Add Preview Image extraction
  • Refactor XMP parsing as "xmp" package
  • Stabalize Imagemeta API
  • Improve test coverage
  • Add Webp image metadata support
  • Add CRW image metadata support (ciff format images)
  • Documentation

Based on and Inspired by

Inspired by Phil Harvey http://exiftool.org, go-exif https://github.com/dsoprea/go-exif, and RW Carlsen https://github.com/rwcarlsen/goexif

Special Thanks to:

Contributors

LICENSE

Copyright (c) 2020-2023, Evan Oberholster & Contributors

imagemeta's People

Contributors

abrander avatar evanoberholster avatar maddosaurus avatar manneaber avatar matrixik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.