Skip to content

v2.9.0

Compare
Choose a tag to compare
@drewnoakes drewnoakes released this 05 Apr 22:02

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: 2.8.1...2.9.0

New features

  • Support for RAF files df06808 e44bbea b04b20d #73 #109
  • Add support for JFXX (JFIF extension) segments da56f27
  • Add support for "Ducky" segments, from Photoshop's "Save for Web" feature 1416d63 #115
  • Read JFIF thumb width/height tags 2aec48a
  • Process XMP found in Exif tag 0x02BC 6619b7c #157
  • Process sub-IFD found via Exif tag 6fab2ec
  • Support non-standard TIFF format code 13 that points to new IFDs 38efe09 73eeefb
  • Support arrays of IFD pointers within a tag, not just a single pointer d5a254c
  • Process additional XMP tags 75799bb #159
  • Support additional WebP chunk types 4f3d75e 747127e

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 4bac919 #121 #129
  • Incorrect PNG chromaticity 7d0d44e
  • Potential bound exception in PhotoshopDirectory 2a72692 05f67c3
  • Potential bound exception in NikonType2MakernoteDescriptor efa1c4a
  • Incorrect return value from AdobeJpegDescriptor.getDctEncodeVersionDescription 4959b51
  • Typos in PcxDirectory tag names 40d6484
  • Validate Olympus makernote dates 80afe26 a5fdcdf
  • Validate ICC dates so exception won't halt reading 8bfc2e9 185ab46
  • Validate IPTC dates during parsing cee3443
  • Parse IPTC IptcDirectory.TAG_DIGITAL_DATE_CREATED 168a208
  • Non-8BIM Photoshop IRBs don't stop processing ef59b50 #125 #128
  • TiffReader attempts to recover from invalid byte ordering b336b3a #136
  • Correctly handle alternative Olympus makernote preamble 5793c81 73f1a48 #93
  • Clear out fractional seconds from computed dates (PNG and ICC) 2ea2549 #146
  • Fix swapped JpegComponent methods getHorizontalSamplingFactor() and getVerticalSamplingFactor() 6c31782 #156
  • Make GpsDirectory.getGpsDate() locale independent 29e95df #160 #161
  • Make PngMetadataReaderTest locale independent e0eb4b2 #162 #163

Description formats

  • Standardisation of f-stop descriptions 45f1e10 0b5d3f9 f796031
  • Change formatting of focal length descriptions 120cd80
  • Use offset in date descriptions, not timezone name 8e4ffb2
  • ICC value formats e6ab7b4 40d60fb
  • Fix typo in 'fluorescent' in ExifDescriptorBase 21a5391
  • Remove trailing space in PhotoshopDescriptor output 674c609
  • Remove trailing full stop in ExifDescriptorBase output d7a0cf3
  • Number formatting in Olympus makernote descriptions fb1997e
  • Don't show lens f-stop range when upper and lower values are identical b74aca1
  • Update shutter speed value formatting e879944
  • Describe ExifDescriptorBase.TAG_LENS_SPECIFICATION be55336
  • Capitalise the name of XmpDirectory 4777af1

API changes

  • Deprecate ExifThumbnailDirectory.TAG_THUMBNAIL_COMPRESSION 825c439 12f023a 4e084ca
  • Remove unused class DefaultTagDescriptor feafc8f
  • Fix typos in some OlympusMakernoteDescriptor description methods 3162299
  • In GifHeaderDirectory replace TAG_TRANSPARENT_COLOR_INDEX with TAG_BACKGROUND_COLOR_INDEX f27dc5d 7ac3b9a #142
  • In JfifDirectory replace getImageWidth/Height with getResX/Y e458489 #143
  • Deprecate ExifDirectoryBase's TAG_LIGHT_SOURCE in favour of TAG_WHITE_BALANCE e298fde

Performance

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

Miscellaneous changes

  • Metadata stores and returns Directory instances in the order they were created bb9a290
  • FileTypeDetector throws if stream doesn't support mark/reset 6a6727c
  • unexpected PNG ICC compression method is registered as an error e2b6a39
  • Project now has an SVG logo which looks better on high DPI displays b4572a3
  • Bump junit version 8debfd8
  • Make Javadoc compilable under Java 8 1ef9bf9 #137
  • Many documentation and internal fixes