v2.9.0
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
methodsgetHorizontalSamplingFactor()
andgetVerticalSamplingFactor()
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
replaceTAG_TRANSPARENT_COLOR_INDEX
withTAG_BACKGROUND_COLOR_INDEX
f27dc5d 7ac3b9a #142 - In
JfifDirectory
replacegetImageWidth
/Height
withgetResX
/Y
e458489 #143 - Deprecate
ExifDirectoryBase
'sTAG_LIGHT_SOURCE
in favour ofTAG_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 returnsDirectory
instances in the order they were created bb9a290FileTypeDetector
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