PNG Loves EXIF

Dustin Oprea <[email protected]> Thu, 14 Jun 2018 04:41:47 -0400
Newsgroups gmane.comp.graphics.png.devel
Message-ID <CAOr1xOEGtKXYEuY1hHN-a0sVSkx5XxT3LFZr7uZ_KM88sO5gvg@mail.gmail.com>
Hi. I'm Dustin.

I just created an reader/writer EXIF library for Go (go-exif
<https://github.com/dsoprea/go-exif>) and a command-line wrapper (
go-exif-knife <https://github.com/dsoprea/go-exif-knife>). Both the library
and command-line tool support thumbnails, GPS, JSON-formatting, writing
tags, etc.. . It's licensed as MIT.

With some guidance from Cosmin, his EXIF PoC, and a look through the libpng
implementation, *go-exif-knife* has first-class support for PNG (which uses
go-png-image-structure <https://github.com/dsoprea/go-png-image-structure>).

Example usage:

$ ./go-exif-knife write --filepath image.png --set-tag=ifd0,Make,testing
--output-filepath /tmp/updated.png

$ ./go-exif-knife read --filepath /tmp/updated.png
 IFD: Ifd<ID=(0) PARENT-IFD=[] IFD=[IFD] INDEX=(0) COUNT=(1) OFF=(0x0008)
CHILDREN=(0) PARENT=(0x0000) NEXT-IFD=(0x0000)>
 - TAG: IfdTagEntry<TAG-IFD=[] TAG-ID=(0x010f) TAG-TYPE=[ASCII]
UNIT-COUNT=(8)> NAME=[Make] VALUE=[testing]


The constellation of projects is fully configured for CI and there is a
complete set of cross-compiled binaries for *go-exif-knife* here:

https://github.com/dsoprea/go-exif-knife/releases


As of this point, it meets a minimum expectation of usability for the
average user, with the exception of parsing MakerNote data. This would
require months more of additional work (a task reserved for the future).
Additional support and unit-tests will be forthcoming.

I'd love to hear comments/critiques.



Dustin

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
png-mng-implement mailing list
png-mng-implement-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/png-mng-implement