metadata-extractor

Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files

APACHE-2.0 License

Stars
2.6K
Committers
66

Bot releases are hidden (Show)

metadata-extractor - v2.19.0 Latest Release

Published by drewnoakes 11 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/drewnoakes/metadata-extractor/compare/2.18.0...2.19.0

metadata-extractor - v2.18.0

Published by drewnoakes over 2 years ago

What's Changed

  • Fix integer addition overflow. by @cniles in https://github.com/drewnoakes/metadata-extractor/pull/570
  • Significant MP4 and QuickTime refactoring
  • Fixed issues identified by fuzzing in #561
  • Better RIFF error reporting
  • Improved Rational value presentation in some cases
  • Support more Sony lens models
  • Improve HEIF/HEIC rotation description
  • Validate Metadata.addDirectory not passed null

New Contributors

Full Changelog: https://github.com/drewnoakes/metadata-extractor/compare/2.17.0...2.18.0

metadata-extractor - v2.17.0

Published by drewnoakes over 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/drewnoakes/metadata-extractor/compare/2.16.0...2.17.0

metadata-extractor - v2.16.0

Published by drewnoakes over 3 years ago

  • Detect 3gp5 as MP4 (0fafa2f02d168079700e1783d67a609e3dabde42)
  • Treat "ftyp" with unknown 4CC as QuickTime (9ab28c0261989efcc4b84767403728bd1b06bd98)
  • Only allocate string when "ftyp" present (24efd338c36cf0aaa15cb295414a85c4df15f628)
  • Bump com.adobe.xmpcore to 6.1.11 (#514)
  • Added KeyValuePair.toString() (#523)
  • Added Schema.PHOTOSHOP_PROPERTIES (#522)
  • Overflowing a short length so it goes negative and screws up the byte read pointer (#524)
  • fixing the MP4 rotation angle value (#533)
  • Avoid reading unused bytes from PNG streams (#535)
metadata-extractor - v2.15.0

Published by drewnoakes about 4 years ago

  • Read Exif from PNG images (#481)
  • Remove Class-Path entry from MANIFEST in jar (#483)
  • Remove AWT dependency (#485)
  • Update name of ICC cprt tag from "Copyright" to "Profile Copyright" (#488)
  • Add CRX and other MP4/QuickTime file type detection (#493)
  • Fix 1 Jan 1904 epoch value (#498)
  • Improve Samsung makernote detection (#506)
  • Preserve QuickTime video rotation sign (961ad72399a44b5e101e3b500b687c118a819f44)
metadata-extractor - v2.14.0

Published by drewnoakes over 4 years ago

  • Support Exif in HEIC/HEIF (#478)
  • Fix exception in HEIC/HEIF handling (#470)
  • Support QuickTime rotation (#466)
  • Support MP4 GPS latitude/longitude (#466)
  • Improve time zone parsing (#466)
  • Improve Canon makernote quality description (#461)
  • Improved Apple makernote support (75c5f5ed557c407f406283e33c8d2fc70e46a655)
  • Improved Samsung makernote support (964a042f6873227aa31d0c6e7ae8048a3b0446e2)
  • Convert PngColorType from enum to class to support unknown values (f66b905d50d948cc6c8a41638e66ecd1abf59790)
  • Remove uses of printStackTrace (#456)
  • Handle WebP with Exif preamble (#473)
  • Fix bug in Exif GPS dest longitude description (#430)
  • Update time zone tag names (b694a7ed5798249197b1a624b8d77f0d61fff256)
  • Rename FileType.Mov to FileType.QuickTime (fa92cfa6c845ffaee3919c1084e24f70590cf36f)
metadata-extractor - v2.13.0

Published by drewnoakes over 4 years ago

  • Fix java.lang.NoClassDefFoundError: java.awt.Point on Android (#409)
  • Set epoch to UTC in MP4 (#410)
  • Fix potential stack overflow in PanasonicRawWbInfo2 (#420)
  • Change detectFileType to take FilterInputStream (#425)
  • Fix build under Java 11 (#432)
  • Support ISO-8859-1 encoding (#436)
  • Make MP4/QuickTime handlers safe for parallel use (#438)
  • Correctly close EPS file stream (400ce1626ee37f3fc0add48175a50740ca68c593)
  • Improve file type detection's use of streams (#450)
  • Fix unit tests on Windows (#452)
  • Improve MP3 detection (#454)
  • Support MP4 UUID and MOV XMP boxes (#451, #455)
metadata-extractor - v2.12.0

Published by drewnoakes over 5 years ago

  • Add HEIF support (#314)
  • Support MP4 duration in seconds (#321)
  • Support QuickTime duration in seconds (#322)
  • Fix null return from PngDescriptor.getBackgroundColorDescription() (#325)
  • Remove XMP array and struct parent properties (#326)
  • Fix MOV/MP4 parsing issues (#330)
  • Improve Quicktime Metadata Atom handling (#331)
  • Exif GPS directory and descriptor updates (#333)
  • Basic support for MP3 files (without ID3) (#337)
  • Add several private ICC tags used by Apple (#340)
  • Support extraction of ICC Profile and Photoshop settings embedded in IFD0 of TIFF file (#341)
  • Show XMP tags in ImageMetadataReader main method (#342)
  • Add Exif 2.31 tags (#343)
  • Add getDateModified() methods to get composite values from multiple Exif tags (#344)
  • Calculate rotation from track header box (tkhd) (#349)
  • Fix getFlashDescription() when flash is off (#356)
  • Fix NikonType2 getPowerUpTimeDescription (#366)
  • Fix bug in getLong64() (#365)
  • Ignore invalid GIF XMP blocks (#367)
  • Support AVI/MOV date times (5c5756f4b5795c5d489675660a4efb36898f6e0f)
  • Remove duplicate tags (91d800ec64aa9b2ebb52ba8bf557c016d6545791)
  • Use "km/h" over "kph" in descriptions (6f9fb568e60a8bb1934cc0eb761c4fc4026e3e1c)
  • Add ExifDirectoryBase.TAG_PHOTOSHOP_SETTINGS name (6df33dabd0660cc38c1469aae0a917eb63734bc6)
  • Set parent dir for ICC/Photoshop dirs in Exif (cfd2a1046c798063636f63632bb3e27343adfc99)
  • Fix some null pointer exceptions in MP4 code (#369)
  • Fix for "Auto" noise reduction setting on Olympus cameras (#339)
  • Update xmpcore to 6.0.6 (#382)
  • Fix slow XMP parsing by limiting photoshop:DocumentAncestors node size (#394)
  • Fix frame rate calculation using handler duration (#387)
metadata-extractor - v2.11.0

Published by drewnoakes almost 7 years ago

  • Add support for AVI files
  • Add support for MP4 files
  • Add support for QuickTime files
  • Add support for EPS files
  • Add support for WAV files
  • Add support for encrypted Nikon makernote tags
  • Add support for IPTC Extended DataSet Tags
  • Add support for PhotoShop paths
  • Extend BMP format support
  • Extend GIF format support
  • Extend detected file types
  • Extend FileType enum to include friendly name, MIME type and expected file extensions
  • Rename FileMetadataReader to FileSystemMetadataReader
  • Various bug fixes

Thanks to all contributors, but especially to @payton who is responsible for the vast majority of work in this release.

metadata-extractor - v2.10.1

Published by drewnoakes over 7 years ago

  • Extends GIF control directory support (#241)
  • Fixes signed-byte bug introduced in #234 (#243)
metadata-extractor - v2.10.0

Published by drewnoakes over 7 years ago

Exif

  • Remove storage of thumbnail data in directories

GIF

  • Significant extension of GIF support, including embedded comments, XMP and ICC (#222)

IPTC

  • Fix parsing IPTC dates in Directory.getDate (#212)

JPEG

  • Extract information about Huffman tables in JPEG files (#231, #234, #239)

PNG

  • Improve error recovery when invalid PNG chunk 4CC seen (#206, #207)

TIFF

  • Support multi-page TIFF (#228)

XMP

  • Remove XMP tags (see 5b07a49f7b3d90c)
  • Support extended XMP decoding in JPEG, where XMP data is too large for a single JPEG segment (#184, #204)
  • Update XMPCore dependency from version 5.1.2 to 5.1.3 (#194, #188)

Makernotes

  • Support Reconyx Hyper and UltraFire makernotes (#227)
  • Considerably extend Olympus RAW support (#210)
  • Only treat Canon makernote tags as embedded directories if they have the correct type (#116)
  • Extend Sony, Leica, Samsung and Panasonic support (#214)
  • Add support for Apple makernotes
  • Extend Makernote support for Canon, including lens IDs
  • Fix capitalisation in OlympusEquipmentMakernoteDescriptor
  • Fix typo in CanonMakernoteDirectory.TAG_FOCUS_CONTINUOUS descriptor output
  • Don't require IFD0 to be present in order to process makernotes

Miscellaneous

  • Defer string charset decoding until after extraction, allowing clients to specify alternate encodings (#135, #165#, #166, #191, #192)
  • Improved null value tracking and NRE prevention
  • Use Euclidean Algorithm to simplify Rational values (#226)
  • Introduce Rational.isZero()
  • Make Rational implement Comparable<Rational>
  • Don't share thread-unsafe DecimalFormat instances (#237)
  • Make JAR file executable via Main-Class (#176)
  • Raise minimum Java version from 1.5 to 1.6 (#218)
  • Fix Javadoc for JDK 1.8
  • Remove Ant build file
metadata-extractor - v2.9.1

Published by drewnoakes over 8 years ago

Fixes:

  • Potential OutOfMemoryException due to overflow arithmetic errors in TiffReader (@dusan-rychnovsky #167)
  • Off-by-one error in IptcReader when last tag in data was one byte in length (@cshclm #172)

Features:

  • Track some hierarchy between Directory instances via getParent().
metadata-extractor - v2.9.0

Published by drewnoakes over 8 years ago

This release contains fixes across the entire project uncovered during the creation of the official .NET port of this project. This new implementation was originally ported from Java to C# by Yakov Danilov (for Imazen LLC). Since then it's been heavily refactored. Going forward, it will be kept functionally equivalent to the Java implementation.

Full diff: https://github.com/drewnoakes/metadata-extractor/compare/2.8.1...2.9.0

New features

  • Support for RAF files df0680855 e44bbea0 b04b20d78cf #73 #109
  • Add support for JFXX (JFIF extension) segments da56f27ff36
  • Add support for "Ducky" segments, from Photoshop's "Save for Web" feature 1416d638282 #115
  • Read JFIF thumb width/height tags 2aec48ab42
  • Process XMP found in Exif tag 0x02BC 6619b7cb87b #157
  • Process sub-IFD found via Exif tag 6fab2ec5
  • Support non-standard TIFF format code 13 that points to new IFDs 38efe09f8d59 73eeefb8bb
  • Support arrays of IFD pointers within a tag, not just a single pointer d5a254c1e34
  • Process additional XMP tags 75799bbd52 #159
  • Support additional WebP chunk types 4f3d75ef3 747127e6fc

Fixes

  • Considerable overhaul of date, time and time zone handling across the library #153 #154 #155 #158
  • Attempt to recover from incorrect JPEG segment length by scanning for next marker 4bac9194663 #121 #129
  • Incorrect PNG chromaticity 7d0d44e360b7b
  • Potential bound exception in PhotoshopDirectory 2a726920e05 05f67c39447f
  • Potential bound exception in NikonType2MakernoteDescriptor efa1c4ada3
  • Incorrect return value from AdobeJpegDescriptor.getDctEncodeVersionDescription 4959b51386
  • Typos in PcxDirectory tag names 40d6484403
  • Validate Olympus makernote dates 80afe26a0 a5fdcdff
  • Validate ICC dates so exception won't halt reading 8bfc2e986 185ab460e
  • Validate IPTC dates during parsing cee344387
  • Parse IPTC IptcDirectory.TAG_DIGITAL_DATE_CREATED 168a208c0
  • Non-8BIM Photoshop IRBs don't stop processing ef59b508 #125 #128
  • TiffReader attempts to recover from invalid byte ordering b336b3a #136
  • Correctly handle alternative Olympus makernote preamble 5793c81e8 73f1a482 #93
  • Clear out fractional seconds from computed dates (PNG and ICC) 2ea2549d #146
  • Fix swapped JpegComponent methods getHorizontalSamplingFactor() and getVerticalSamplingFactor() 6c3178201c2 #156
  • Make GpsDirectory.getGpsDate() locale independent 29e95dfdf #160 #161
  • Make PngMetadataReaderTest locale independent e0eb4b275dc2 #162 #163

Description formats

  • Standardisation of f-stop descriptions 45f1e10d72e5 0b5d3f9a3d f796031d
  • Change formatting of focal length descriptions 120cd8042
  • Use offset in date descriptions, not timezone name 8e4ffb2c0
  • ICC value formats e6ab7b42e 40d60fbec45
  • Fix typo in 'fluorescent' in ExifDescriptorBase 21a539172
  • Remove trailing space in PhotoshopDescriptor output 674c60960
  • Remove trailing full stop in ExifDescriptorBase output d7a0cf33122
  • Number formatting in Olympus makernote descriptions fb1997e072
  • Don't show lens f-stop range when upper and lower values are identical b74aca1b0
  • Update shutter speed value formatting e8799446e
  • Describe ExifDescriptorBase.TAG_LENS_SPECIFICATION be55336182c6
  • Capitalise the name of XmpDirectory 4777af113

API changes

  • Deprecate ExifThumbnailDirectory.TAG_THUMBNAIL_COMPRESSION 825c43914 12f023ad25 4e084caa0d
  • Remove unused class DefaultTagDescriptor feafc8f01
  • Fix typos in some OlympusMakernoteDescriptor description methods 316229957e
  • In GifHeaderDirectory replace TAG_TRANSPARENT_COLOR_INDEX with TAG_BACKGROUND_COLOR_INDEX f27dc5da1d2 7ac3b9a15 #142
  • In JfifDirectory replace getImageWidth/Height with getResX/Y e458489ff1 #143
  • Deprecate ExifDirectoryBase's TAG_LIGHT_SOURCE in favour of TAG_WHITE_BALANCE e298fde1bdaab

Performance

  • Considerable improvement when reading large TIFF files (such as raw files) using ImageMetadataReader 0c7c57753b9a #164
  • Perform type check outside loop b3e2f9bd97
  • Use Collections.singletonList instead of Arrays.asList with single item 4cb52005
  • Slightly reduce allocations in PNG reader 455a83a673a
  • Simplify Tag.getTagTypeHex() 54cb1a8d01e6

Miscellaneous changes

  • Metadata stores and returns Directory instances in the order they were created bb9a2900
  • FileTypeDetector throws if stream doesn't support mark/reset 6a6727c5c
  • unexpected PNG ICC compression method is registered as an error e2b6a39e0
  • Project now has an SVG logo which looks better on high DPI displays b4572a335e8
  • Bump junit version 8debfd81c
  • Make Javadoc compilable under Java 8 1ef9bf94fce #137
  • Many documentation and internal fixes
metadata-extractor - v2.8.1

Published by drewnoakes over 9 years ago

  • When a parsing date with no timezone specified, don't use default (assume UTC/GMT) (#97)
  • Formatting of f/stop descriptions changed to f/2.8 instead of F2.8(#97)
  • Extend Exif exposure program decoding (#97)
  • Add Canon LensType tag (#97)
  • Handle XMP data with different (erroneous yet common) preamble in JPEG files (#102)
metadata-extractor - v2.8.0

Published by drewnoakes over 9 years ago

  • WebP support (#85)
  • File system metadata (#86)
  • ICO file support (#61)
  • PCX support (#89)
  • Improve Exif tag comprehension across directory types (#3, #8, #9, #82, #83)
  • Support PNG sBIT and pHYs chunks
  • Extract tEXt and iTXt chunks from PNG (#62)
  • Metadata may now hold multiple instances of a Directory subclass (#61, #65)
  • Improve date/time formatting of EXIF-GPS and IPTC data
  • Detect new file types: RIFF (#85), PCX (#89), ICO (#61), additional ORF format
  • Read image resources from Photoshop data (#87)
  • Fix decoding of 8BIM Photoshop strings (#57)
  • Process EXIF, ICC and XMP data embedded in Photoshop data (#88)
  • Extend XMP support (#92)
  • Extend Olympus makernote support (#93)
metadata-extractor - v2.7.2

Published by drewnoakes over 9 years ago

  • Bug Fixes
    • Fix Tag.hasTagName() to return a boolean
metadata-extractor - v2.7.1

Published by drewnoakes over 9 years ago

  • Fixes
    • Fix exception related to IPTC character encoding
    • Fix exception caused by zero-length IPTC tags
    • Mute exceptions about PNG chunks we don't even process
  • Improvements
    • Decode more IPTC version tags correctly
    • Add Tag.hasTagName() and Directory.hasTagName(int) methods
    • Extract file type detection to reusable FileTypeDetector class
    • Make file type detection more rigorous
    • Detect camera RAW formats (still treated as Exif TIFF)
  • API changes
    • Rename PngDirectory.TAG_PROFILE_NAME to PngDirectory.TAG_ICC_PROFILE_NAME
    • Removed ExifReader's TIFF processing functions. Use TiffReader instead.
  • Project
    • Regression test data set increased significantly
metadata-extractor - v2.7.0

Published by drewnoakes almost 10 years ago

  • Features
    • Added support for PNG, GIF and BMP files.
    • Added makernote support for:
      • Leica
      • Sanyo
      • Ricoh
    • Support for character encoding in IPTC data.
    • Extract IPTC data found in Exif chunks.
  • Improvements
    • Optimised JPEG processing, avoiding unnecessary IO.
    • Improved makernote support for:
      • Canon
      • Fujifilm
      • Kodak
      • Panasonic
      • Olympus
      • Sigma
      • Sony
    • Javadoc improvements.
    • Many more unit tests.
  • Bug Fixes
    • Fixed incorrect rejection of rare but correct JPEG files.
    • Unit tests work across cultures.
    • Fixed bug in Lat/Lng coordinates containing a zero value.
  • API Changes
    • Some Casio*.TAG_CASIO_* renamed to Casio*.TAG_*
    • Some Olympus*.TAG_OLYMPUS_* renamed to Olympus*.TAG_*
    • Some Gps*.TAG_GPS_* renamed to Gps*.TAG_*
  • Project
    • Migrated project to GitHub.
    • Added Maven pom.xml project file.
    • Targeting JDK 1.5 instead of 1.6.
    • Update XMPCore to version 5.1.2.
    • Update junit to version 4.11.0
    • Introduce Travis-CI build

There are many changes in this release. Please open an issue if you encounter an API change which is not listed here.

metadata-extractor - v2.6.4

Published by drewnoakes almost 10 years ago

Released 23 December 2012

  • Targeting JDK 1.6 instead of 1.7.
  • Added XMP Rating tag.
metadata-extractor - v2.6.3

Published by drewnoakes almost 10 years ago

Released 28 October 2012

  • Added support for Olympus ORF & Panasonic RW2 RAW files which use non-standard TIFF markers.
  • Better default descriptions of long array tag values.
  • Fixed some minor documentation issues.
  • Cause ImageMetadataReader.java to truncate tag descriptions that are longer than 1024 characters.
  • Extended reporting from ProcessAllImagesInFolderUtility.java.
  • Updated templating for online Javadoc, as generated by Java 7.