use exif-terminator

This commit is contained in:
tsmethurst
2022-01-23 14:41:31 +01:00
parent 589bb9df02
commit 7d024ce74d
117 changed files with 3873 additions and 8725 deletions

View File

@ -0,0 +1,9 @@
[![GoDoc](https://godoc.org/github.com/dsoprea/go-utility/image?status.svg)](https://godoc.org/github.com/dsoprea/go-utility/image)
[![Build Status](https://travis-ci.org/dsoprea/go-utility.svg?branch=master)](https://travis-ci.org/dsoprea/go-utility)
[![Coverage Status](https://coveralls.io/repos/github/dsoprea/go-utility/badge.svg?branch=master)](https://coveralls.io/github/dsoprea/go-utility?branch=master)
[![Go Report Card](https://goreportcard.com/badge/github.com/dsoprea/go-utility)](https://goreportcard.com/report/github.com/dsoprea/go-utility)
# media_parser_type
Common image-parsing interfaces. Used for JPEG, PNG, and HEIC parsers used by
go-exif-knife.

View File

@ -0,0 +1,34 @@
package riimage
import (
"io"
"github.com/dsoprea/go-exif/v3"
)
// MediaContext is an accessor that knows how to extract specific metadata from
// the media.
type MediaContext interface {
// Exif returns the EXIF's root IFD.
Exif() (rootIfd *exif.Ifd, data []byte, err error)
}
// MediaParser prescribes a specific structure for the parser types that are
// imported from other projects. We don't use it directly, but we use this to
// impose structure.
type MediaParser interface {
// Parse parses a stream using an `io.ReadSeeker`. `mc` should *actually* be
// a `ExifContext`.
Parse(r io.ReadSeeker, size int) (mc MediaContext, err error)
// ParseFile parses a stream using a file. `mc` should *actually* be a
// `ExifContext`.
ParseFile(filepath string) (mc MediaContext, err error)
// ParseBytes parses a stream direct from bytes. `mc` should *actually* be
// a `ExifContext`.
ParseBytes(data []byte) (mc MediaContext, err error)
// Parses the data to determine if it's a compatible format.
LooksLikeFormat(data []byte) bool
}