Documentation
¶
Overview ¶
Package imagemeta provides functions for parsing and extracting Metadata from Images. Different image types such as JPEG, Camera Raw, DNG, TIFF, HEIF, and AVIF.
Index ¶
- Variables
- func Decode(r io.ReadSeeker) (exif.Exif, error)
- func DecodeARW(r io.ReadSeeker) (exif.Exif, error)
- func DecodeCR2(r io.ReadSeeker) (exif.Exif, error)
- func DecodeCR3(r io.ReadSeeker) (exif.Exif, error)
- func DecodeCRW(r io.ReadSeeker) (exif.Exif, error)
- func DecodeHeif(r io.ReadSeeker) (exif.Exif, error)
- func DecodeJPEG(r io.ReadSeeker) (exif.Exif, error)
- func DecodePng(r io.ReadSeeker) (exif.Exif, error)
- func DecodeTiff(r io.ReadSeeker) (exif.Exif, error)
- func ExtractPreview(r io.ReadSeeker, p PreviewImage, opts ...PreviewOption) ([]byte, error)
- func PreviewCR3(r io.ReadSeeker) ([]byte, error)
- func PreviewTIFF(r io.ReadSeeker, opts ...PreviewOption) ([]byte, error)
- func SetLogger(w io.Writer, level slog.Level)
- type PreviewImage
- type PreviewOption
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoExif = meta.ErrNoExif ErrNoExifDecodeFn = errors.New("error no Exif Decode Func set") ErrNoXmpDecodeFn = errors.New("error no Xmp Decode Func set") ErrImageTypeNotFound = imagetype.ErrImageTypeNotFound ErrMetadataNotSupported = errors.New("error metadata reading not supported for this imagetype") )
Errors
var ErrNoPreview = errors.New("error no embedded preview image found")
ErrNoPreview is returned when a file contains no embedded preview image.
Functions ¶
func DecodeARW ¶ added in v1.0.0
func DecodeARW(r io.ReadSeeker) (exif.Exif, error)
DecodeARW decodes a Sony ARW file from an io.Reader returning Exif or an error.
func DecodeCR2 ¶ added in v0.2.0
func DecodeCR2(r io.ReadSeeker) (exif.Exif, error)
DecodeCR2 decodes a CR2 file from an io.Reader returning Exif or an error.
func DecodeCR3 ¶ added in v0.2.0
func DecodeCR3(r io.ReadSeeker) (exif.Exif, error)
DecodeCR3 decodes a CR3 file from an io.Reader returning Exif or an error.
func DecodeCRW ¶ added in v1.0.0
func DecodeCRW(r io.ReadSeeker) (exif.Exif, error)
DecodeCRW decodes a CRW file from an io.ReadSeeker returning Exif or an error.
func DecodeHeif ¶ added in v0.2.0
func DecodeHeif(r io.ReadSeeker) (exif.Exif, error)
DecodeHeif decodes a Heif file from an io.Reader returning Exif or an error. Needs improvement
func DecodeJPEG ¶ added in v0.2.0
func DecodeJPEG(r io.ReadSeeker) (exif.Exif, error)
DecodeJPEG decodes a JPEG file from an io.Reader returning Exif or an error.
func DecodePng ¶ added in v0.2.0
func DecodePng(r io.ReadSeeker) (exif.Exif, error)
DecodePng decodes a PNG file from an io.Reader returning Exif or an error.
func DecodeTiff ¶ added in v0.2.0
func DecodeTiff(r io.ReadSeeker) (exif.Exif, error)
DecodeTiff decodes a Tiff/DNG file from an io.Reader returning Exif or an error.
func ExtractPreview ¶ added in v1.1.0
func ExtractPreview(r io.ReadSeeker, p PreviewImage, opts ...PreviewOption) ([]byte, error)
ExtractPreview reads the bytes of one preview and validates the JPEG SOI marker. The returned slice is newly allocated.
func PreviewCR3 ¶ added in v1.0.0
func PreviewCR3(r io.ReadSeeker) ([]byte, error)
PreviewCR3 previews a CR3 file from an io.Reader returning preview image binary or an error.
func PreviewTIFF ¶ added in v1.1.0
func PreviewTIFF(r io.ReadSeeker, opts ...PreviewOption) ([]byte, error)
PreviewTIFF returns the largest embedded JPEG preview of a TIFF-based (raw) file, e.g. NEF/CR2/ARW/DNG, analog to PreviewCR3.
Types ¶
type PreviewImage ¶ added in v1.1.0
type PreviewImage struct {
// IFD names the directory the preview was found in ("IFD0", "IFD1",
// "SubIFD1", ...).
IFD string
// Width and Height are the dimensions declared by the directory; zero
// when the directory does not declare them.
Width uint32
Height uint32
Offset uint32
Length uint32
}
PreviewImage describes an embedded JPEG preview of a TIFF-based (raw) file. Offset and Length locate the JPEG stream in the file.
func TIFFPreviews ¶ added in v1.1.0
func TIFFPreviews(r io.ReadSeeker, opts ...PreviewOption) ([]PreviewImage, error)
TIFFPreviews lists the embedded JPEG preview images of a TIFF-based raw file (e.g. NEF, CR2, ARW, DNG, PEF), largest first. The offsets are relative to the start of the file. Candidates are validated against the actual stream: only renderable JPEGs qualify, which keeps raw sensor payloads out (DNG stores those as lossless JPEG, uncompressed or vendor-compressed strips).
type PreviewOption ¶ added in v1.1.0
type PreviewOption func(*previewConfig)
PreviewOption configures preview extraction.
func WithMaxPreviewLength ¶ added in v1.1.0
func WithMaxPreviewLength(n int64) PreviewOption
WithMaxPreviewLength bounds the byte length of a preview that TIFFPreviews surfaces and ExtractPreview reads. A value <= 0 disables the limit (the preview is still bounded by the file size).
Directories
¶
| Path | Synopsis |
|---|---|
|
Package imagehash computes perceptual hashes and blur placeholders from an image: 64/256-bit pHash, 64-bit aHash, 256-bit PDQ and BlurHash strings.
|
Package imagehash computes perceptual hashes and blur placeholders from an image: 64/256-bit pHash, 64-bit aHash, 256-bit PDQ and BlurHash strings. |
|
internal/pdq
Package pdq implements Meta's PDQ (Perceptual Difference Quantization) perceptual hashing algorithm.
|
Package pdq implements Meta's PDQ (Perceptual Difference Quantization) perceptual hashing algorithm. |
|
internal/phash
Package phash contains the transforms used by the PHash perceptual hash.
|
Package phash contains the transforms used by the PHash perceptual hash. |
|
Package imagetype provides types and functions for identifying Image document types
|
Package imagetype provides types and functions for identifying Image document types |
|
gen
command
|
|
|
Package meta contains meta types for image metadata
|
Package meta contains meta types for image metadata |
|
exif
Package tiff reads Tiff Header metadata information from image files before being processed by exif package
|
Package tiff reads Tiff Header metadata information from image files before being processed by exif package |
|
exif/makernote
Package makernote defines maker-note tag IDs, camera-make identification, and the shared EXIF maker-note container for vendor-specific metadata.
|
Package makernote defines maker-note tag IDs, camera-make identification, and the shared EXIF maker-note container for vendor-specific metadata. |
|
exif/makernote/canon
Package canon provides data types and functions for representing Canon Camera Makernote values
|
Package canon provides data types and functions for representing Canon Camera Makernote values |
|
exif/makernote/nikon
Package nikon contains Nikon-specific metadata models shared by the EXIF decoder and downstream callers.
|
Package nikon contains Nikon-specific metadata models shared by the EXIF decoder and downstream callers. |
|
exif/makernote/sony
Package sony provides data types and functions for representing Sony Camera Makernote values.
|
Package sony provides data types and functions for representing Sony Camera Makernote values. |
|
jpeg
Package jpeg reads metadata information (Exif and XMP) from a JPEG Image.
|
Package jpeg reads metadata information (Exif and XMP) from a JPEG Image. |
|
png
Package png reads PNG Header metadata information from image files before being processed by exif package
|
Package png reads PNG Header metadata information from image files before being processed by exif package |
|
xmp
Package xmp provides functions for decoding .xmp sidecar files and XMP embedded within image files
|
Package xmp provides functions for decoding .xmp sidecar files and XMP embedded within image files |
|
xmp/cmd
command
|
|