PackageTrack
Sign in Get early access

image

Dart Image Library provides server and web apps the ability to load, manipulate, and save images with various image file formats.

4.9.2 6.2M downloads/mo #116 most downloaded on pub.dev brendan-duncan/image

What this package is like to depend on

Last release 5 days ago

19 Aug 2026

Release timing varies

gaps range from 8 days to 9 months

Most releases are documented

notes for 107 of 121 stable releases

Nothing withdrawn

no release was ever pulled

13 years old

122 releases · first in 2014

8 releases in the last 12 months

see the full history below

Release timeline

122 releases · Jan 2014 to Aug 2026
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 60 of 122
  1. 4.9.2 19 Aug 2026
    Release notes
    • Add the DitherKernel.burkes and DitherKernel.jarvisJudiceNinke error-diffusion kernels.
    • Add ordered (Bayer) matrix dithering via ditherImageBayer and the DitherKernel.bayer2x2, DitherKernel.bayer4x4, DitherKernel.bayer8x8 kernels. Unlike the error-diffusion kernels, the pattern is position-based and uses a fixed threshold matrix, so it is deterministic and fast.
    • Add DitherScanOrder (raster, serpentine, zigzag, hilbert) and the ditherImage(scanOrder:) / quantize(ditherScanOrder:) / encodeGif(ditherScanOrder:) / GifEncoder(ditherScanOrder:) parameters. zigzag visits pixels along the anti-diagonals, which breaks up the horizontal worm artifacts of raster scanning.
    • Fix binary PNM files being misdetected as TGA, by probing PNM before TGA in findDecoderForData.
    • Fix injectJpgExif dropping any segment (such as the JFIF APP0 header) that precedes the EXIF APP1 block, and losing the embedded EXIF thumbnail.
    • Remove xml dependency, replacing it with a minimal built-in parser for the bitmap font (.fnt) format.
    • Fix OctreeQuantizer mapping colors to palette index 0 when their octree path hit a folded-away branch, which turned bright pixels near-black once an image had more distinct colors than the requested palette size. Palettes built from partially-folded internal nodes now include those nodes' entries, so the palette also no longer comes up short of numberOfColors.
    Open source →
  2. 4.9.1 30 May 2026
    Release notes
    • Remove meta dependency.
    Open source →
  3. 4.9.0 21 May 2026
    Release notes
    • Fix minMax returning incorrect values when the minimum or maximum was in the first pixel of a multi-channel image.
    • Fix copyResizeCropSquare ignoring the crop offset when using non-nearest interpolation, which off-centered the resized result.
    • Improve the precision of the RGB/XYZ/CIE-Lab color conversions, and round rather than truncate the final RGB values, making the conversions lossless.
    • Fix copyResizeCropSquare throwing a range error when a non-zero radius was used with a non-square image.
    • Fix non-antialiased drawLine drawing diagonal lines offset by ~1 pixel.
    • Preserve EXIF metadata when expanding an image with copyExpandCanvas.
    • Image.convert now applies an explicitly provided alpha value even when the format and channel count are unchanged.
    • Fix a range error in Image.fromBytes when the source row stride is smaller than the image's row stride.
    • Fix a RangeError when decoding images with corrupt EXIF data.
    • Reject non-BMP files that merely start with the BM signature instead of crashing the decoder.
    • Fix noise with NoiseType.saltAndPepper producing colored pixels instead of black/white ones.
    • colorOffset now scales its offsets to the bit depth of the image, so the effect is consistent regardless of the image's format.
    • Add fuzzy and padding options to trim and findTrim.
    • Add findEncoderForData, which returns an Encoder for a buffer of image data, complementing findDecoderForData.
    • Add a dispose option to GifEncoder to control the frame disposal method.
    • PsdImage.layers no longer throws a LateInitializationError when accessed before decode has been called.
    Open source →
  4. 4.8.0 18 Feb 2026
    Release notes
    • Fix JPEG decoding issue with Adobe RGB color transformations.
    • Feature: Histogram equalize and stretch
    Open source →
  5. 4.7.2 21 Dec 2025

    Nothing published for this version

  6. 4.7.1 18 Dec 2025
    Release notes
    • Fix issue decoding the last row of lossless webp images.
    Open source →
  7. 4.7.0 18 Dec 2025
    Release notes
    • Major update to the WebP decoder to resolve errors decoding some files.
    • Fixed issue where App1 marker would not be written when Exif data is injected into jpegs without exif block. Also fixed wrong IFD1 pointer.
    • Improved robustness of EXIF injection and reading:
    • Skips malformed EXIF sub-IFDs (e.g., bad GPSInfo pointers) during reading and injection, preventing RangeErrors and crashes.
    • Allows injecting new EXIF (including GPS) data into files with broken EXIF blocks.
    Open source →
  8. 4.6.0 11 Dec 2025
    Release notes
    • Fix issues with injectJpegExif corrupting jpeg files.
    • Clean up validation errors causing Wasm builds to fail.
    • Fix issue with Jpeg subsampling causing some images to fail to load.
    • Fix rgbToHsv function
    • Fix jpeg RGB-to-YUV conversion and background blending logic.
    • Decode and encode ICC profile data for JPEG
    • Added export for ICO encoder
    • Fix error adding frame to an empty image
    • Fix GIF decoder animation frame clear color
    • GIF animation frame background transparency.
    • Fixes for TIFF decoding
    Open source →
  9. 4.5.4 23 Mar 2025
    Release notes
    • Fix for fillRect for images that that have alpha.
    • Fix copyExpandCanvas for images with alpha.
    • Improved performance for copyResize.
    • Improved performance for gaussianBlur.
    Open source →
  10. 4.5.3 22 Feb 2025
    Release notes
    • Improve fillPolygon to better handle concave polygons.
    • Update conditional imports to be compatible with WASM.
    • Fix TIFF 5-channel CMYK decoding
    • Fix adjustColor color corruption
    • Improve adjustColor saturation calculations
    • Fix alpha color handling in JPEG encoder
    • Change the default background color to white instead of black
    Open source →
  11. 4.5.2 19 Dec 2024
    Release notes
    • Reduce Min SDK version to 3.0.
    Open source →
  12. 4.5.1 19 Dec 2024
    Release notes
    • Make image library compatible with archive 3.x
    Open source →
  13. 4.5.0 15 Dec 2024
    Release notes
    • Fix gif animation decoder
    • Add ConstColorRgba8, ConstColorRgb8 for const color creation.
    Open source →
  14. 4.4.0 12 Dec 2024
    Release notes
    • Upgrade to Archive 4.0 dependency
    Open source →
  15. 4.3.0 16 Oct 2024
    Release notes
    • Fix exceptions loading some PSD files.
    • Fix trim for palette images.
    • Fix ICC decompression.
    • Add physical size handling to PNG.
    • Fix TIFF out of bounds error.
    Open source →
  16. 4.2.0 22 May 2024
    Release notes
    • Fix decoding EXIF data from WebP.
    • Add ContrastMode.scurve to contrast filter.
    • Filter functions will auto-convert palette images
    • Add BinaryQuantizer.
    • Fix ditherImage not returning dithered image.
    • Fix APNG decoding.
    • drawString should use alpha color.
    • Improve performance of animated GIF decoding.
    • Fix TIFF tile decoding
    • Add solarize filter function
    • Fix decoding TIFF with ZLIB decoding
    • Add PNM format decoder.
    • Add support for uint16 palettes.
    Open source →
  17. 4.1.7 10 Feb 2024
    Release notes
    • JPEG images will finish decoding even if the file is incomplete or has errors.
    • Fix performance bug with Image.getBytes
    Open source →
  18. 4.1.6 01 Feb 2024
    Release notes
    • Incomplete or JPEGs with errors will now finish loading.
    Open source →
  19. 4.1.5 01 Feb 2024
    Release notes
    • Optimize copying bytes in Image.fromBytes
    • 2 channel images are treated as Luminance-Alpha
    Open source →
  20. 4.1.4 13 Jan 2024
    Release notes
    • Fix Image.getBytes when ChannelOrder has a different number of channels than the image.
    • copyResize command accepts maintainAspect and backgroundColor args.
    • Fix EXIF decoder when image has bad IFD offsets.
    • Improve drawString handling of new line characters when wrap is true.
    • Improve GIF animation decoding when each frame has its own palette.
    Open source →
  21. 4.1.3 26 Sep 2023
    Release notes
    • Fix crash in copyResize for non-nearest interpolation modes.
    Open source →
  22. 4.1.2 24 Sep 2023
    Release notes
    • No changes, removing unnecessary files in 4.1.1.
    Open source →
  23. 4.1.1 24 Sep 2023
    Release notes
    • Add maintainAspect and backgroundColor to copyResize to resize width and height of an image, without stretching the source (using background color to pad).
    • drawString will word-wrap even when x or y is set.
    • Don't clamp brightness in adjustColor.
    Open source →
  24. 4.1.0 22 Sep 2023
    Release notes
    • Update pub dependencies.
    Open source →
  25. 4.0.17 07 May 2023
    Release notes
    • Fix resizing multi-frame palette images.
    • Fix transparency issue with encodeGif.
    Open source →
  26. 4.0.16 28 Apr 2023
    Release notes
    • Fix GIF decoder not decoding some animation files transparency and frame duration.
    • Fix default rowStride for Image.fromBytes.
    Open source →
  27. 4.0.15 12 Feb 2023
    Release notes
    • Fix JPEG encoder for non uint8 format images.
    Open source →
  28. 4.0.14 11 Feb 2023
    Release notes
    • Use Image.backgroundColor for copyRotate, copyCropCircle, and other functions that reveal background pixels.
    Open source →
  29. 4.0.13 30 Jan 2023
    Release notes
    • Fix transform functions for palette images.
    Open source →
  30. 4.0.12 23 Jan 2023
    Release notes
    • Fix EXIF parsing little endian data
    • Fix bounds errors with filter functions and palette images.
    • Fix BMP encoding palette rgba images by converting them to 32-bit rgba.
    Open source →
  31. 4.0.11 22 Jan 2023
    Release notes
    • Add decodeJpgExif and injectJpgExif functions to process JPG exif data without needing to decode the image.
    • Fix EXIF parse exception from empty strings.
    • Fix EXIF string data not writing out null character.
    Open source →
  32. 4.0.10 15 Jan 2023
    Release notes
    • Fix last-minute typo from previous release.
    Open source →
  33. 4.0.9 15 Jan 2023
    Release notes
    • Fix offset error with BMP encoder for images with < 8 bits per pixel
    • Improve quality of converting 3-channel image to 1-channel.
    Open source →
  34. 4.0.8 08 Jan 2023
    Release notes
    • Fix ChannelOrder.bgra.
    • Add Image.hasAlpha getter property that will be true if the Image has an alpha channel.
    Open source →
  35. 4.0.7 06 Jan 2023
    Release notes
    • Fix Image.getRangeIterator skipping last line.
    Open source →
  36. 4.0.6 05 Jan 2023
    Release notes
    • Image.remapChannels(ChannelOrder order) to remap the order of channels from rgb to bgr, etc.
    • Image.getBytes({ChannelOrder? order}) will return the image data, optionally reordering the channels.
    • Image.fromBytes can take an optional ChannelOrder? order named arg to specify the channel order of the input data.
    Open source →
  37. 4.0.5 03 Jan 2023
    Release notes
    • Improved antialiasing for drawLine
    • Add antialias arg for drawCircle, fillCircle.
    • Added radius argument to drawRect, fillRect, copyCrop, and copyResizeCropSquare to support rounded rectangles.
    • Add Image.getPixelClamped method.
    • Added TGA decoder 8-bit, 16-bit, 32-bit, and RLE compression modes.
    Open source →
  38. 4.0.4 01 Jan 2023
    Release notes
    • Fix for animated PNG with palette images, which needed a global palette for all frames.
    • Fix TIFF encoder for palette images.
    • Cleaned up EXIF classes.
    Open source →
  39. 4.0.3 31 Dec 2022
    Release notes
    • Fix for encoding GIF transparency.
    Open source →
  40. 4.0.2 31 Dec 2022
    Release notes
    • No changes, dart formatted code and fix documentation link.
    Open source →
  41. 4.0.1 31 Dec 2022
    Release notes
    • Use strict analyzer settings, clean up warnings.
    Open source →
  42. 4.0.0 30 Dec 2022
    Release notes
    • Major update of the Dart Image Library. Includes support for:
      • Major overhaul of the API. Dart has changed a lot in the 10 years since this library was written, so the API has been modernized.
      • Flexible ImageData, with support for 1, 2, 4, 8, 16, and 32 bit images, and 1-4 channels per pixel.
      • 16, 32, and 64-bit floating-point format images.
      • 8, 16, and 32-bit integer format images.
      • Palette images with 1, 2, 4, and 8-bit colors.
      • Improved pixel access API.
      • Merged HDR and Animation functionality into the single Image class.
      • New Command API with support for executing on Isolate threads.
      • New filters and drawing commands.
    Open source →
  43. 3.3.0 30 Dec 2022
    Release notes
    • Improved EXIF data management
    • Fix character code issue with BitmapFont.
    • This is the last 3.x update before the big 4.0 release.
    Open source →
  44. 3.2.2 16 Oct 2022
    Release notes
    • Fix transparency issue with animated GIF images.
    Open source →
  45. 3.2.1 16 Oct 2022
    Release notes
    • Fixes for APNG: fix exception from some APNG files, and some frames were not composited correctly.
    Open source →
  46. 3.2.0 18 May 2022
    Release notes
    • Update SDK dependency to >2.15.0 and XML package dependency to >6.0.0
    Open source →
  47. 3.1.3 18 Feb 2022
    Release notes
    • Optimize Image.getWhiteBalance function, add asDouble argument to return double value.
    Open source →
  48. 3.1.2 18 Feb 2022
    Release notes
    • Add BmpEncoder to encode BMP images, along with encodeBmp function. Currently, only 24-bit or 32-bit BMP images will be encoded.
    Open source →
  49. 3.1.1 13 Jan 2022
    Release notes
    • Fix error loading some tiff images
    • Fix jpeg comments to support non-strict utf8 text
    Open source →
  50. 3.1.0 30 Nov 2021
    Release notes
    • Update archive version requirement
    • Fix JPGDecoder to return correct nullable types.
    Open source →
  51. 3.0.8 02 Oct 2021
    Release notes
    • Fix WebP lossless decoder.
    Open source →
  52. 3.0.7 29 Sep 2021
    Release notes
    • Change LICENSE to MIT.
    Open source →
  53. 3.0.6 29 Sep 2021
    Release notes
    • Clean up LICENSE file, moving other license references to LICENSE-other.
    Open source →
  54. 3.0.5 21 Sep 2021
    Release notes
    • Fix copyResize for landscape oriented images.
    Open source →
  55. 3.0.4 11 Sep 2021
    Release notes
    • Fix Dart warnings from the previous release.
    Open source →
  56. 3.0.3 11 Sep 2021
    Release notes
    • Fix #320 * copyResize incorrectly applies linear and cubic.
    • Apply EXIF orientation when decoding JPEG images.
    Open source →
  57. 3.0.2 19 Mar 2021
    Release notes
    • Dithering support for GIF encoder.
    • Fix PNGEncoder issue if addFrame is called directly instead than encodeImage or encodeAnimation.
    • Optimization for drawImage.
    Open source →
  58. 3.0.1 28 Feb 2021
    Release notes
    • Improve NeuralQuantizer to fix issue encoding small GIF images.
    • Code cleanup resolving lint issues.
    Open source →
  59. 3.0.0-nullsafety.0 25 Jan 2021 pre-release

    Nothing published for this version

  60. 2.1.19 11 Nov 2020
    Release notes
    • Refactor HdrImage to better support more diverse formats, used for Hdr Tiff decoding.
    • TiffDecoder will maintain Tag data after decoding, allowing them to be read to process image metadata.
    • Added TiffEncoder. Still needs work to be able to add tag data to an encoded image.
    • Clean up print statements from BmpDecoder.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive