github kean/Nuke 13.2.0
Nuke 13.2.0

6 hours ago

What's Changed

  • Add AssetType/utType and AssetType/init(_:) for bridging to and from UTType
  • Add AssetType/bmp, AssetType/tiff, AssetType/jpeg2000, and AssetType/jxl. Image I/O decodes these formats, but AssetType/init(_:) didn't recognize them, so ImageContainer/type was nil
  • Fix AssetType/init(_:) detecting GIF from the first three bytes instead of the complete GIF87a/GIF89a signature, which kept the original data in the memory cache for the files that merely started with GIF
  • Fix AssetType/webp, AssetType/mp4, AssetType/m4v, and AssetType/mov using the identifiers that the system doesn't declare, so they didn't bridge to a UTType
  • Fix MP4 files with the standard mp42 major brand being detected as AssetType/m4v
  • Detect the ISO base media types from the major brand in the ftyp box, which adds the remaining MP4, M4V, and HEIC brands
  • Fix progressive image downloads not completing when isResetEnabled is true on LazyImageView by @nathantannar4 in #884
  • Fix ImagePipeline.Cache.storeCachedImage(_:for:caches:) storing image previews in the disk cache, so a progressive scan passed to it was later delivered as a completed image – #885
  • Fix ImageProcessors.Resize ignoring upscale when crop is true, which enlarged the image beyond its native resolution – #886
  • Fix the file and data URL schemes being matched case-sensitively, so FILE:///… and Data:… URLs skipped the local resource fast path and had their contents copied into the data cache – #887
  • Fix a crash when resizing an image to a non-finite size. CGContext creation converted the dimensions with Int(_:), which traps on NaN and infinity – #888
  • Fix ImageDecoders/Default generating GIF previews even when the preview policy is ImagePipeline/PreviewPolicy/disabled#892
  • Fix ImageProcessors/GaussianBlur blurring the image with a radius of 0 or less instead of returning it unchanged. The radius was clamped to a minimum of 2, so every radius in 0...2 also rendered identically under different cache keys – #893
  • Fix ImageProcessingOptions/Border producing the same identifier for every color with no sRGB representation, e.g. a pattern color. The components are now also clamped to 0...1, which used to produce malformed hex for wide-gamut colors on iOS – #891
  • Fix progressive previews being silently dropped for the rest of the task's lifetime when the cached data fails to decode and the task falls back to loading the image – #894
  • Fix DataLoader/delegate never receiving urlSession(_:didCreateTask:) on macOS and Mac Catalyst, where the forwarding was compiled out – #895
  • Fix ImageProcessors/GaussianBlur tagging opaque images with an alpha channel, which made ImageEncoders/Default encode blurred photos as PNG instead of JPEG or HEIC – #896
  • Fix an outstanding progressive decoding or processing operation not being cancelled when a task fails, leaving it to occupy a queue slot and hold on to the decoded preview until the queue drained past it – #898
  • Fix a late image response reaching the memory cache after its task had already ended, letting a stale progressive scan overwrite the entry – #898

New Contributors

Full Changelog: 13.1.0...13.2.0

Don't miss a new Nuke release

NewReleases is sending notifications on new releases.