2.9.0
What's Changed
Note
Version 2.9.0 increases the minimum supported targets.
- ➕
net8.0andnetstandard2.1were added - ❌
net45was bumped tonet461(vianetstandard2.0) - ❌
netstandard1.3is no longer supported (NETSDK1215) - ❌
net3.5is no longer supported
These changes allow the library to utilise APIs with better performance. The removed frameworks are all very old and out of support, so we expect impact to be minimal. If you require these old targets, stick on an old version of this library.
- Support Apple run time data in makernotes by @drewnoakes in #343
- Fix NikonPictureControl1Directory parsing by @drewnoakes in #349
- Reader tweaks and fix reading of trailing whitespace by @drewnoakes in #350
- Fix incorrect descriptor in Sony Type1 makernote by @drewnoakes in #351
- Added code to parse OM System II makernote (uses Olympus II makernote) by @AndyDragon in #354
- Remove net3.5 target by @drewnoakes in #358
- Work around invalid XMP XML by @drewnoakes in #359
- Bump netstandard2.0 to netstandard2.1 by @drewnoakes in #360
- Spanify various things and use UTF-8 literals by @iamcarbon in #361
- Spanify (part 2) by @iamcarbon in #363
- Run tests against net8.0 & update xunit by @iamcarbon in #364
- Tidy up tests by @iamcarbon in #365
- Use BinaryPrimitives by @iamcarbon in #366
- Spanify (3/n) by @iamcarbon in #367
- Spanify SequentialReader by @drewnoakes in #368
- Spanify Iso2022Converter by @drewnoakes in #369
- IPTC fixes by @drewnoakes in #370
- Trim null bytes from NikonPictureControl2Directory values by @drewnoakes in #371
- Permit var and explicit types by @drewnoakes in #372
- Spanify StringValue conversions by @drewnoakes in #373
- Extend GeoTIFF support by @drewnoakes in #374
- Spanify ByteTrie.Find by @iamcarbon in #375
- Update JpegSegmentPreamble to UTF-8 spans by @iamcarbon in #376
- Tidy up code and eliminate some allocations by @iamcarbon in #378
- Make missing APIs an error by @drewnoakes in #377
- Use IReadOnlyCollection, collection expressions by @drewnoakes in #379
- Bump target framework from net45 to net462 by @drewnoakes in #382
- Use primary constructors by @iamcarbon in #384
- Add GitHub CI workflow by @drewnoakes in #383
- Treat warnings as errors by @drewnoakes in #385
- Spanify indexed reader classes by @drewnoakes in #380
- Polyfill non-allocating encoding span->string without byte[] by @drewnoakes in #386
- Remove JetBrains.Annotations by @drewnoakes in #387
- Make ByteConvert util class internal by @drewnoakes in #388
- Remove explicit Version MSBuild property by @drewnoakes in #389
- Improve Code Quality / Tiding by @iamcarbon in #390
- Address minor regressions by @drewnoakes in #391
- Use ArrayPool for poolable byte buffers by @drewnoakes in #392
- Add AVIF support by @drewnoakes in #396
- Introduce BufferReader and eliminate a bunch of allocations by @iamcarbon in #393
- Minor tidying and perf by @drewnoakes in #398
- Port UnknownTagHandler by @drewnoakes in #399
- Extend Apple makernote support by @drewnoakes in #401
- Remove obsolete members on Tag class by @drewnoakes in #400
- Support NativeAOT by @drewnoakes in #397
- Introduce and use Indexed BufferReader methods by @iamcarbon in #402
- Reduce overhead reading byte/sbyte arrays from IndexedReader by @drewnoakes in #405
- Pool buffers in IndexedCapturingReader by @drewnoakes in #404
- Remove custom number formatting in ICC by @drewnoakes in #403
- Spanify top-level parsing for makernotes by @drewnoakes in #407
- TIFF extraction makes fewer, larger reads by @drewnoakes in #408
- Use spans in readers in .NET 8 by @drewnoakes in #410
- Allow filename to influence file type detection by @drewnoakes in #411
- Collapse .AsSpan().Slice(...) calls into .AsSpan(...) by @drewnoakes in #412
- Small perf fixes and some code reuse by @drewnoakes in #413
- Introduce ScopedBuffer by @iamcarbon in #415
- Spanify BplistReader by @iamcarbon in #416
- SequentialStreamReader.cs: Cast numbers to ulong before bound check by @KirkLandTrip in #427
- Fix compile errors by @drewnoakes in #442
- Fix a bounds check in ICC tag decoding by @drewnoakes in #440
- Unify test namespaces by @drewnoakes in #444
- Add file type detection for PDF by @drewnoakes in #441
- Update target frameworks by @drewnoakes in #443
- Fix shutter speed description calculation by @drewnoakes in #445
- Fix bounds exception in HEIF reader by @drewnoakes in #446
- Added support for xmp in quicktime files as written by latest Adobe software by @frelo in #431
- Fixed PNG compressed iTXt chunk by @reinfallt in #422
- Support additional Exif tags by @drewnoakes in #447
- Tidying by @drewnoakes in #448
- Performance and code style by @drewnoakes in #449
- QuickTime: Fix parsing of the GPS tag (xyz) by @KirkLandTrip in #433
- add support for apple live-photo mov file refer #344 by @naughtyGitCat in #426
- Add CR3 as a supported file type to the README by @drewnoakes in #451
- Add GitHub Copilot instructions for metadata-extractor-dotnet repository by @Copilot in #457
- Use platform method for Unix time conversion by @dave-murray in #458
New Contributors
- @AndyDragon made their first contribution in #354
- @KirkLandTrip made their first contribution in #427
- @frelo made their first contribution in #431
- @naughtyGitCat made their first contribution in #426
- @Copilot made their first contribution in #457
- @dave-murray made their first contribution in #458
Full Changelog: 2.8.1...2.9.0