PackageTrack
Sign in Get early access

pro_image_editor

A Flutter image editor: Seamlessly enhance your images with user-friendly editing features.

13.3.1 66K downloads/mo #1310 most downloaded on pub.dev hm21/pro_image_editor

What this package is like to depend on

Last release 13 days ago

11 Aug 2026

Ships fairly regularly

a new release about every 9 days

Nearly every release is documented

notes for 344 of 345 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

437 releases · first in 2024

129 releases in the last 12 months

see the full history below

Release timeline

437 releases · Jan 2024 to Aug 2026
2025 2026
Release Pre-release

Releases

latest 60 of 437
  1. 13.3.1 11 Aug 2026
    Release notes

    What's Changed

    • fix(crop-rotate): stop crop handles, pinch and tilt from jumping by @hm21 in #855

    Full Changelog: v13.3.0...v13.3.1

    Open source →
    Release notes
    • FIX(crop-rotate): Crop handles no longer jump onto the finger when a drag starts; the gesture slop and the distance to the grabbed handle are compensated.
    • FIX(crop-rotate): Corner drags with a fixed aspect ratio now follow the finger diagonally instead of tracking horizontal movement only, and stay inside the image.
    • FIX(crop-rotate): Pinch-to-zoom no longer jumps at gesture start and is no longer interrupted when the second finger touches down.
    • FIX(crop-rotate): The overlay outside the crop area fades smoothly again when an interaction is interrupted.
    • FIX(crop-rotate): Fix the auto zoom-out hit area being misplaced on Android and with custom app bars.
    • FIX(crop-rotate): Resizing a tilted image no longer makes it jump around; the tilt bounds now follow the crop animation instead of overriding its zoom, and the auto zoom-out stops at the zoom the tilt requires.
    Open source →
  2. 13.3.0 31 Jul 2026
    Release notes

    What's Changed

    • feat(layers): rasterize layers outside a live editor session by @hm21 in #853

    Full Changelog: v13.2.3...v13.3.0

    Open source →
    Release notes
    • FEAT(layers): Rasterize layers outside a live editor session with LayerRasterizer and LayerRasterizerHost.
    Open source →
  3. 13.2.3 24 Jul 2026
    Release notes

    What's Changed

    • feat(layer-interaction): enhance alignment guide behavior during drag interactions by @hm21 in #852

    Full Changelog: v13.2.2...v13.2.3

    Open source →
    Release notes
    • FIX(main-editor): A layer sharing its position with others (a stack of overlapping layers) can now be dragged away instead of being trapped by their coincident alignment guides. Snapping re-arms once the layer moves clear.
    Open source →
  4. 13.2.2 23 Jul 2026
    Release notes

    What's Changed

    • fix(main-editor): ignore spurious scale-end on mid-gesture pointer change (#850) by @hm21 in #851

    Full Changelog: v13.2.1...v13.2.2

    Open source →
    Release notes
    • FIX(main-editor): Ignore the spurious scale-end Flutter fires when a finger is added or removed mid-gesture (e.g. a third finger during a two-finger layer rotation). It previously ran the full interaction teardown, corrupting the history stack and crashing on iOS with a _dependents.isEmpty assertion (#850).
    Open source →
  5. 13.2.1 23 Jul 2026
    Release notes

    What's Changed

    • fix(text-editor): reserve hit-box padding in editing preview so the text box doesn't jump on done by @hiake21cUs in #849

    New Contributors

    Full Changelog: v13.2.0...v13.2.1

    Open source →
    Release notes
    • FIX(text-editor): Stop the rounded background text from growing and reflowing the moment editing completes (#849). The editing preview now reserves the same hit-box padding as the finished layer and wraps the background at the same column as the editable text, so the background no longer shifts or changes line count when editing ends.
    Open source →
  6. 13.2.0 07 Jul 2026
    Release notes

    What's Changed

    • feat: combine paint layers + flatten filters by @hm21 in #847

    Full Changelog: v13.1.0...v13.2.0

    Open source →
    Release notes
    • FEAT(paint): Combine several selected paint layers into one via mergeSelectedLayers() / canMergeSelectedLayers. PaintLayer now holds multiple items, baking each source transform into a shared frame so the drawing looks identical after merging.
    • FEAT(filter): Flatten the active filter stack into a single FilterState via mergeFilters() / canMergeFilters (appearance-identical; skipped for video-timeline filters).
    Open source →
  7. 13.1.0 07 Jul 2026
    Release notes

    What's Changed

    • chore: migrate Android module to Flutter's built-in Kotlin and update version to 13.1.0 by @hm21 in #846

    Full Changelog: v13.0.0...v13.1.0

    Open source →
    Release notes
    • CHORE(android): Migrate the Android module to Flutter's built-in Kotlin (drop the manual Kotlin Gradle Plugin apply) so the plugin no longer triggers the KGP deprecation warning and stays AGP 9+ compatible. Now requires Flutter 3.44+.
    Open source →
  8. 13.0.0 03 Jul 2026
    Release notes

    What's Changed

    • feat(tune)!: replace luminance with tint, remove sharpness, fix colorOverlay/fade by @hm21 in #844

    Full Changelog: v12.11.1...v13.0.0

    Open source →
    Release notes
    • FEAT(tune): Replace the luminance control (which only desaturated) with a real tint green–magenta adjustment, the natural complement to temperature.
    • FIX(filter): Fix colorOverlay tinting towards the complementary color instead of the overlay color (inverted sign), and rebuild fade as a proper fade (lower contrast + lifted black point) instead of a desaturation.
    • BREAKING(tune): Remove the sharpness control (a per-pixel color matrix cannot sharpen) and rename luminancetint across ColorFilterAddons, TuneEditorIcons and I18nTuneEditor; saved histories using the old tune ids are no longer recognized.
    Open source →
  9. 12.11.1 01 Jul 2026
    Release notes

    What's Changed

    • fix(layers): anchor timeline scale animation on layer visual center by @hm21 in #843

    Full Changelog: v12.11.0...v12.11.1

    Open source →
    Release notes
    • FIX(layers): Anchor the video-timeline scale layer animation on the layer's visual center. Combining scale with a slide (e.g. slide-in from the top) previously drifted the layer in diagonally instead of straight, because scaling used the layout-box center while the layer content is painted off-center.
    Open source →
  10. 12.11.1-dev.1 01 Jul 2026 pre-release

    Nothing published for this version

  11. 12.11.0 29 Jun 2026
    Release notes

    What's Changed

    • feat(crop-rotate): perspective tilt/skew with auto-zoom bounds (#525) by @hm21 in #842

    Full Changelog: v12.10.0...v12.11.0

    Open source →
    Release notes
    • FEAT(crop-rotate): Add perspective tilt/skew (#525). New CropRotateTool.tilt with rotate/horizontal/vertical rulers (TiltConfigs); the crop stays inside the tilted image via auto-zoom, and tilt is hidden in the video editor by default.
    Open source →
  12. 12.10.0 27 Jun 2026
    Release notes
    • FEAT(helper-lines): Add app-defined custom snapping guide lines (#834). HelperLineConfigs.customGuides accepts a list of HelperGuideLines (vertical or horizontal, positioned with absolute editor-body pixels or a normalized 0.0-1.0 fraction) that participate in layer snapping and are drawn - using the new HelperLineStyle.customGuideColor - while a layer snaps to them. Useful for safe areas, thirds, columns or any layout-specific alignment points. See the new Custom-Guide-Lines example.
    • FEAT(helper-lines): Text and paint layers now snap by their edges - left/center/right and top/center/bottom - in addition to their center (#833). When aligning to the editor center lines, another layer or a custom guide, whichever edge sits closest to the guide snaps to it, making it easy to align text/paint blocks by their visible edge. Other layer types continue to snap by their configured anchor.
    Open source →
  13. 12.9.0 27 Jun 2026
    Release notes
    • FEAT(editors): Support keyboard handling in the sub-editors, not just the main editor (#837). The onKeyboardEvent callback is now available on every standalone editor's callbacks (crop-rotate, paint, filter, tune, blur) via StandaloneEditorCallbacks; returning true consumes the event and skips the built-in shortcut. The crop-rotate and paint editors additionally gain an enableKeyboardShortcuts option (default true) to disable their built-in shortcuts (e.g. R/F in the crop-rotate editor). Previously these callbacks and the option only affected the main editor, so the crop-rotate R/F shortcuts could not be intercepted or disabled.
    Open source →
  14. 12.8.2 27 Jun 2026
    Release notes
    • FIX(crop-rotate): Honor initAspectRatio for the oval cropper in the main editor's initial state. Opening the editor directly in CropMode.oval with a fixed initAspectRatio (e.g. 1.0) previously rendered and exported an ellipse stretched to the full image bounds for non-square images, because the initial (un-transformed) state never consulted initAspectRatio and fell back to the full image aspect ratio. The initial oval mask now uses a centered crop of the requested ratio in the overlay, the capture overlay and the export clip (so 1.0 produces a circle), while a free (-1) or original (0.0) ratio keeps the previous full-image behavior.
    Open source →
  15. 12.8.1 27 Jun 2026
    Release notes
    • FIX(crop-rotate): Cover the image edge with the crop overlay when the image is panned. The darkened overlay is painted on top of the image and its outer rectangle matched the rendered image bounds exactly, so when an image edge floated inside the viewport (e.g. the image pushed to the bottom) anti-aliasing along that shared edge left a ~1px partially-transparent seam that revealed a thin line of the image. The overlay rectangle is now slightly overscanned beyond the image bounds so the seam falls on the surrounding background where it is invisible.
    Open source →
  16. 12.8.0 24 Jun 2026
    Release notes
    • FIX(layers): Make the video-timeline slide layer animation edge-aware. Previously the layer was only translated by its own width/height (a single layer size), so a layer that did not sit against the canvas edge stayed partially visible while sliding in/out. The slide now uses the layer's center and the canvas size to push the layer's nearest edge exactly onto (or off) the canvas border, so off-center layers leave the visible area completely. The preview math mirrors the matching native renderer change in pro_video_editor (ApplyAnimation.kt / ApplyAnimation.swift). Use this together with the corresponding pro_video_editor release so the in-editor preview keeps matching the exported video. Prerelease.
    Open source →
  17. 12.8.0-dev.1 24 Jun 2026 pre-release

    Nothing published for this version

  18. 12.7.0 24 Jun 2026
    Release notes
    • FEAT(layers): Add first-class per-layer enter/leave animations for the video timeline. A new LayerAnimation model (type fade/slide/scale, phase animateIn/animateOut/animateInOut, duration, curve, optional slideDirection and scaleFrom) can be attached to any layer via the new Layer.animations list (or set on an existing layer through ProImageEditor.setLayerTimeline(animations: …)), mirroring the pro_video_editor model so the in-editor preview matches the exported result. The video-layer-timeline preview is now phase-aware: it composes fade (opacity), slide (per-direction translation) and scale effects across a layer's enter and exit windows, so the enter and leave phases can use distinct animation types. The legacy enterDuration / exitDuration / enterCurve / exitCurve fade fields are kept as a back-compat convenience and can be read as a unified animation list via Layer.effectiveAnimations. animations is serialized in toMap / fromMap and carried through copyWith, equality and layer cloning. Non-breaking, additive change.
    Open source →
  19. 12.7.0-dev.1 24 Jun 2026 pre-release

    Nothing published for this version

  20. 12.6.0 22 Jun 2026
    Release notes
    • FEAT(import-export): Add optional widgetLoader (and widgetRecords) parameters to CompleteParameters.fromMap and CompleteParameters.fromJson so widget/sticker layers exported with an exportConfigs.id can be reconstructed. This is a non-breaking, additive change; existing callers are unaffected.
    Open source →
  21. 12.5.3 22 Jun 2026
    Release notes
    • CHORE(main-editor): Refactor the layer-scale regression test for readability.
    Open source →
  22. 12.5.2 22 Jun 2026
    Release notes
    • FIX(main-editor): Prevent layer scale from compounding (layers shrinking) when a single paint session adds multiple layers. Shared layer instances reused across history entries are now rescaled at most once per resize/import recalculation.
    Open source →
  23. 12.5.2-dev.1 22 Jun 2026 pre-release

    Nothing published for this version

  24. 12.5.1 15 Jun 2026
    Release notes
    • FEAT(main-editor): Add interactiveViewerClipBehavior option to MainEditorConfigs (default Clip.hardEdge) to control clipping of the editor's interactive content area.
    Open source →
  25. 12.5.0 14 Jun 2026
    Release notes
    • FEAT(crop-rotate): Add enableKeepAspectRatioOnRotate option to keep the selected aspect ratio orientation when rotating (e.g. 9:16 stays 9:16 instead of becoming 16:9), zooming the image in so it still fully covers the crop area.
    Open source →
  26. 12.4.8 07 Jun 2026
    Release notes
    • CHORE: Update CI to Flutter 3.44 and fix deprecated API usages.
    Open source →
  27. 12.4.7 06 Jun 2026
    Release notes
    • FIX(example): Update Supabase initialization to use publishable key and upgrade supabase_flutter dependency to 2.14.1.
    Open source →
  28. 12.4.6 06 Jun 2026
    Release notes
    • FEAT(ios/macos): Add Swift Package Manager (SPM) support.
    Open source →
  29. 12.4.5 28 May 2026
    Release notes
    • FIX(layers): Improve text quality by applying FilterQuality.high when rendering layer images with transforms.
    Open source →
  30. 12.4.4 25 Apr 2026
    Release notes
    • FIX(layers): Improve exported layer resolution for scaled layers to avoid blurry output.
    Open source →
  31. 12.4.3 17 Apr 2026
    Release notes
    • FIX(state-manager): Update activeFilters and activeTuneAdjustments to directly use historyPointer.
    Open source →
  32. 12.4.2 17 Apr 2026
    Release notes
    • FEAT(state-manager): Add replaceHistory() to replace an existing history entry in the stack (current pointer by default, or a custom index).
    Open source →
  33. 12.4.2-dev.1 17 Apr 2026 pre-release

    Nothing published for this version

  34. 12.4.1 16 Apr 2026
    Release notes
    • FEAT(main-editor): Add captureImageOnDone to MainEditorConfigs (default true) to make final captureEditorImage() on done optional.
    • FIX(main-editor): Prevent _isProcessingFinalImage from getting stuck by guarding done-flow cleanup with try/finally.
    Open source →
  35. 12.4.0 15 Apr 2026
    Release notes
    • FEAT(audio-editor): Add volume, loop, audioStartTime, audioEndTime, and endTime fields to AudioTrack.
    • FEAT(complete-parameters): Add audioTracks field (List<AudioTrack>) to CompleteParameters for multiple audio track support.
    • DEPRECATED(complete-parameters): customAudioTrack — use audioTracks instead.
    • DEPRECATED(audio-editor): enableLoop parameter in AudioTrack.copyWith — use loop instead.
    Open source →
  36. 12.3.6 15 Apr 2026
    Release notes
    • FEAT(complete-parameters): Export meta field in CompleteParameters so user-defined metadata is available in the onCompleteWithParameters callback.
    Open source →
  37. 12.3.5 15 Apr 2026
    Release notes
    • FEAT(processor): Add initializationDelay to ProcessorConfigs to optionally defer isolate/thread startup and avoid jank during page transition animations.
    Open source →
  38. 12.3.4 13 Apr 2026
    Release notes
    • FIX(main-editor): Preserve active filters, tuneAdjustments, and meta in addHistory() when values are not explicitly provided.
    • FIX(main-editor): Store copied filters/tuneAdjustments/meta in history entries to prevent shared-reference mutations across undo/redo states.
    Open source →
  39. 12.3.4-dev.3 13 Apr 2026 pre-release

    Nothing published for this version

  40. 12.3.4-dev.2 13 Apr 2026 pre-release

    Nothing published for this version

  41. 12.3.4-dev.1 13 Apr 2026 pre-release

    Nothing published for this version

  42. 12.3.3 13 Apr 2026
    Release notes
    • FEAT(filter-editor): Add unique id to FilterState, export/import it, and generate backward-compatible IDs when missing in older history payloads.
    Open source →
  43. 12.3.2 13 Apr 2026
    Release notes
    • FEAT(filter-editor): Add name field to FilterState to carry the filter name through the editor, history, and import/export.
    • FEAT(state-manager): Expose activeMeta as a public field, updated on every undo/redo alongside activeLayers.
    Open source →
  44. 12.3.1 12 Apr 2026
    Release notes
    • FEAT(state-history): Add meta field (Map<String, dynamic>) to EditorStateHistory for user-defined data that is preserved across undo/redo and import/export.
    • FEAT(layers): Add basePixelRatio parameter to captureAsPng, captureAllLayers, and captureAllLayersWithMeta for image-relative layer export resolution.
    • FIX(timeline): Keep hidden layers painted in the render tree so captureAsPng works for timeline-dismissed layers.
    • FIX(layers): Use imageInfos.pixelRatio instead of device pixel ratio for layer capture in doneEditing, ensuring correct export resolution relative to the source image.
    Open source →
  45. 12.3.1-dev.5 12 Apr 2026 pre-release

    Nothing published for this version

  46. 12.3.1-dev.4 12 Apr 2026 pre-release

    Nothing published for this version

  47. 12.3.1-dev.3 12 Apr 2026 pre-release

    Nothing published for this version

  48. 12.3.1-dev.2 11 Apr 2026 pre-release

    Nothing published for this version

  49. 12.3.1-dev.1 11 Apr 2026 pre-release

    Nothing published for this version

  50. 12.3.0 11 Apr 2026
    Release notes
    • FEAT(timeline): Add meta field to FilterState and TuneAdjustmentMatrix for storing arbitrary metadata on filters and tune adjustments.
    • FEAT(timeline): Add copyWith() to FilterState and TuneAdjustmentMatrix.
    • FEAT(main-editor): Add setFilterTimeline() and setTuneTimeline() methods for updating timeline properties of filters and tune adjustments.
    • FEAT(main-editor): Support skipUpdateHistory in setFilterTimeline() and setTuneTimeline() for live trimming without history overhead.
    • PERF(main-editor): setLayerTimeline with skipUpdateHistory now copies only the affected layer instead of the entire layer list.
    • PERF(main-editor): Skip setLayerTimeline entirely when no values would change.
    • REFACTOR(state-manager): Simplify activeFilters and activeTuneAdjustments to public fields.
    Open source →
  51. 12.3.0-dev.7 11 Apr 2026 pre-release

    Nothing published for this version

  52. 12.3.0-dev.6 11 Apr 2026 pre-release

    Nothing published for this version

  53. 12.3.0-dev.5 11 Apr 2026 pre-release

    Nothing published for this version

  54. 12.3.0-dev.4 11 Apr 2026 pre-release

    Nothing published for this version

  55. 12.3.0-dev.3 11 Apr 2026 pre-release

    Nothing published for this version

  56. 12.3.0-dev.2 11 Apr 2026 pre-release

    Nothing published for this version

  57. 12.3.0-dev.1 11 Apr 2026 pre-release

    Nothing published for this version

  58. 12.2.2 11 Apr 2026
    Release notes
    • FEAT(main-editor): Expose editTextLayer, editPaintLayer, applyTextLayerChanges, removeFilter, and clearFilters as public methods.
    • DOCS(main-editor): Add doc comments to editTextLayer, editPaintLayer, applyTextLayerChanges, removeFilter, and clearFilters.
    Open source →
  59. 12.2.1 11 Apr 2026
    Release notes
    • FIX(timeline): Recalculate layer visibility when startTime, endTime, enterDuration, or exitDuration change while the video is paused.
    Open source →
  60. 12.2.0 09 Apr 2026
    Release notes
    • FEAT(timeline): Add video timeline visibility to layers, filters, and tune adjustments with configurable startTime, endTime, enter/exit durations and curves.
    • FEAT(complete-parameters): Add filterStates, tuneAdjustments, and capturedLayers to CompleteParameters. Add captureLayersOnDone config to MainEditorConfigs.
    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