exifr v3.0.0 Release Notes

Release Date: 2020-02-18 // almost 2 years ago
  • ๐Ÿ’ฅ Breaking changes

    Exports

    • ๐Ÿ“œ renamed ExifParser class to Exifr.
    • ๐Ÿ’ป renamed thumbnailBuffer() function to thumbnail(). It now also returns Uint8Array instead of ArrayBuffer in browser. Node.js version keeps returning Buffer.

    Output format

    • ๐Ÿ“‡ Renamed options.image block to options.ifd0.
    • ๐Ÿ“‡ Renamed options.thumbnail block to options.ifd1.
    • ๐Ÿ‘€ renamed & simplified behavior of seekChunkSize and parseChunkSize. See firstChunkSize, firstChunkSizeBrowser, firstChunkSizeNode.
    • ๐Ÿ”„ Changed EXIF & IPTC tag dictionary to match ExifTool. Most tag names remain the same. Some might be changed slightly. You can check out the src/dicts/* files for reference. For example: before {ExposureBiasValue: 0}, after {ExposureCompensation: 0}; before {WhiteBalance: 'Auto white balance'}, after {WhiteBalance: 'Auto'}

    Options

    • ๐Ÿ“‡ Renamed output.image block to output.ifd0.
    • ๐Ÿ“‡ Renamed output.thumbnail block to output.ifd1.
    • โœ‚ removed postProcess property and split its behavior to new properties sanitize, translateKeys, translateValues and reviveValues.
    • ๐Ÿ”„ Changed behavior of options.wholeFile and renamed to options.chunked

    library bundles

    • 0๏ธโƒฃ The library now comes in multiple bundles, with varying number of parsers & tag dictonaries. lite bundle is now recommend as the default for browser use because of its small footprint.
    • ๐Ÿ— Broken down parsers and tag dictionaries into multiple files. No all of them are included in lite or mini builds.
    • ๐Ÿ“ฆ package.json defined module as "type": "module". All .js files are treated as ES Modules by Node.js.

    โž• Added

    • ๐Ÿ“œ ICC Parser
    • ๐Ÿ’ป Older browsers support
    • ๐Ÿ— multiple new output builds (so users can prevent importing unused code)
    • ๐Ÿท tags filtering (pick/skip options)
    • exifr.gps()

    ๐Ÿ”„ Changed

    • major rewrite of a whole input reader pipeline
      • implemented BufferView wrapper class for all forms of binary data.
      • reimplemented chunked reader
    • ๐Ÿ“œ major rewrite of a whole parser pipeline
      • broken the code into separate parser classes & files (TIFF, XMP, IPTC, ICC)
      • TIFF is no longer the main parser
      • All APP segments are now first searched in the file and then parsed
      • implemented base parser class than can be used to implement custom APP-segment parsers by user
      • exposed segment parsers
    • rewrote readme