NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1482 most downloaded on pub.dev
A Flutter image editor: Seamlessly enhance your images with user-friendly editing features.
Last release 3 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
451 releases · first in 2024
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEAT(timeline): Add meta field to FilterState and TuneAdjustmentMatrix for storing arbitrary metadata on filters and tune adjustments.
One column per month.
meta field to FilterState and TuneAdjustmentMatrix for storing arbitrary metadata on filters and tune adjustments.copyWith() to FilterState and TuneAdjustmentMatrix.setFilterTimeline() and setTuneTimeline() methods for updating timeline properties of filters and tune adjustments.skipUpdateHistory in setFilterTimeline() and setTuneTimeline() for live trimming without history overhead.setLayerTimeline with skipUpdateHistory now copies only the affected layer instead of the entire layer list.setLayerTimeline entirely when no values would change.activeFilters and activeTuneAdjustments to public fields.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEAT(main-editor): Expose editTextLayer, editPaintLayer, applyTextLayerChanges, removeFilter, and clearFilters as public methods.
editTextLayer, editPaintLayer, applyTextLayerChanges, removeFilter, and clearFilters as public methods.editTextLayer, editPaintLayer, applyTextLayerChanges, removeFilter, and clearFilters.FIX(timeline): Recalculate layer visibility when startTime, endTime, enterDuration, or exitDuration change while the video is paused.
startTime, endTime, enterDuration, or exitDuration change while the video is paused.FEAT(timeline): Add video timeline visibility to layers, filters, and tune adjustments with configurable startTime, endTime, enter/exit durations and
startTime, endTime, enter/exit durations and curves.filterStates, tuneAdjustments, and capturedLayers to CompleteParameters. Add captureLayersOnDone config to MainEditorConfigs.FEAT(layers): Add layer export API to capture individual layers as PNG images. Use Layer.captureAsPng() for single layers or Layer.captureAllLayers()
Layer.captureAsPng() for single layers or Layer.captureAllLayers() for batch export with shared isolate reuse. The main editor exposes captureAllLayers() and captureAllLayersWithMeta() convenience methods.ExportedLayer model containing the source layer, encoded image bytes, and logical size metadata.FEAT(text-editor): Add composingTextDecoration to TextEditorConfigs to control the text decoration of the IME composing region. Defaults to TextDecora
composingTextDecoration to TextEditorConfigs to control the text decoration of the IME composing region. Defaults to TextDecoration.none to remove the underline shown when enableSuggestions is active.FEAT(text-editor): Add spellCheckConfiguration to TextEditorConfigs for enabling spell checking in the text input field.
spellCheckConfiguration to TextEditorConfigs for enabling spell checking in the text input field.FEAT(text-editor): Add inputLetterSpacing and inputShadows to TextEditorStyle for customizing letter spacing and text shadows.
inputLetterSpacing and inputShadows to TextEditorStyle for customizing letter spacing and text shadows.onLayerInteractionEnd callback to MainEditorCallbacks, triggered when layer interaction ends.BottomAppBar SafeArea gap in sub-editors.FIX(iOS, macOS): Restore CocoaPods compatibility for the native Darwin plugin alongside Swift Package Manager support.
Nothing published for this version
FIX(text-editor): Disable system text scale factor in RoundedBackgroundTextField to ensure consistent text sizing regardless of user accessibility set
RoundedBackgroundTextField to ensure consistent text sizing regardless of user accessibility settings.PERF(paint-editor): Optimize freestyle path building by reducing redundant moveTo calls, eliminating intermediate list allocations, and using distance
moveTo calls, eliminating intermediate list allocations, and using distanceSquared instead of distance.Opacity widget wrapping when layer opacity is 1.0.done() with Map-based O(1) lookup.updateActiveItems() calls via new skipUpdateActiveItems parameter on addHistory().FEAT(text-editor): Add leadingDistribution property to TextEditorStyle for configuring how extra line height is distributed. Use TextLeadingDistributi
leadingDistribution property to TextEditorStyle for configuring how extra line height is distributed. Use TextLeadingDistribution.even to vertically center text within rounded background rects at non-default line heights. Defaults to proportional for backward compatibility.FEAT(platform): Add shared Darwin (iOS/macOS) native plugin implementation using Swift Package Manager.
FEAT(editor-audio): Add safeFilePath method to EditorAudio that returns a file path for the audio source. For file sources, it returns the path direct
safeFilePath method to EditorAudio that returns a file path for the audio source. For file sources, it returns the path directly. For memory, asset, and network sources, it writes the data to a temporary file. File extension is automatically extracted from asset paths and network URLs.Nothing published for this version
FIX(wasm): Resolve WASM incompatibility caused by unconditional dart:isolate import. The IsolateManager is now loaded via a conditional import, so web
dart:isolate import. The IsolateManager is now loaded via a conditional import, so web/WASM builds use a stub that falls back to single-threaded processing.Nothing published for this version
FEAT(crop-rotate-editor): Add exportOvalMask to CropRotateEditorConfigs (default true). When set to false, the exported image uses a plain rectangular
exportOvalMask to CropRotateEditorConfigs (default true). When set to false, the exported image uses a plain rectangular crop even if CropMode.oval is active, while the oval UI remains visible inside the crop editor.helperLineWidth to CropRotateEditorStyle, allowing the grid line thickness to be customized or hidden entirely by setting it to 0.FIX(main-editor): Resolve crash when setState is called after widget disposal, preventing "Cannot add new events after calling close" error.
setState is called after widget disposal, preventing "Cannot add new events after calling close" error.FIX(layers): Resolve issue where layer interaction button tooltips would absorb pointer events in Flutter 3.41+, preventing scale and rotate gestures
FEAT(audio-editor): Added a new Audio Editor to the Video Editor, allowing users to add background music. Users can set the audio start time and adjus
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
FEAT(paint-editor): Add customPathBuilders to PaintEditorConfigs, allowing users to register custom PathBuilderBase implementations for any paint mode
customPathBuilders to PaintEditorConfigs, allowing users to register custom PathBuilderBase implementations for any paint mode.custom1, custom2, custom3 paint modes that require custom path builders to be registered. These can be fully customized with custom icons and i18n labels.FEAT(helper-lines): Helper line stroke width is now configurable via the configs.
FIX(layers): Resolve issue of layers always being clipped and unable to extend beyond the image editor.
FEAT(image-generation): Add captureImageByteFormat config to ImageGenerationConfigs to control the byte format used when capturing images. Defaults to
captureImageByteFormat config to ImageGenerationConfigs to control the byte format used when capturing images. Defaults to ImageByteFormat.rawStraightRgba which prevents black border artifacts around transparent edges when exporting to PNG.enableKeyboardShortcuts config to MainEditorConfigs to optionally disable library-side keyboard shortcuts, allowing apps to implement their own key bindings without conflicts.FEAT(video-editor): Add videoSetupLoadingIndicator widget to VideoEditorWidgets to allow customizing the loading indicator shown while the video playe
videoSetupLoadingIndicator widget to VideoEditorWidgets to allow customizing the loading indicator shown while the video player is initializing.FEAT(video-editor): Add showControls config to VideoEditorConfigs to allow hiding the video editor controls UI.
showControls config to VideoEditorConfigs to allow hiding the video editor controls UI.FEAT(text-editor): Add resizeToAvoidBottomInset config to control whether the editor resizes when the keyboard appears.
resizeToAvoidBottomInset config to control whether the editor resizes when the keyboard appears.FIX(keyboard-shortcuts): Block Ctrl-based shortcuts when Alt is pressed to prevent conflicts with keyboard layouts (e.g., Polish) where Ctrl+Alt+Z is
FIX: Resolve issue where DeferPointer shows an error when the hero animations is running for the text layers from the custom screens.
FEAT(main-editor): Add the flag enableSubEditorPage which allows sub-editors to be opened with the same constraints as the editor itself. More details
enableSubEditorPage which allows sub-editors to be opened with the same constraints as the editor itself. More details in PR #752.FEAT(main-editor): Add onEditTextLayer callback to MainEditorCallbacks, allowing users to open a custom text editor when a text layer is tapped.
onEditTextLayer callback to MainEditorCallbacks, allowing users to open a custom text editor when a text layer is tapped.onCreateTextLayer callback to MainEditorCallbacks, allowing users to open a custom text editor when creating a new text layer.bodyItemsOverlay to TextEditorWidgets for placing custom widgets above all other content in the text editor body.textFieldPadding to TextEditorStyle for applying padding outside the scroll area of the text field.FEAT(CompleteParameters): Add serialization methods (toMap, fromMap, toJson, fromJson).
toMap, fromMap, toJson, fromJson).Nothing published for this version
FEAT(paint-editor): Add freestyle arrow modes (freeStyleArrowStart, freeStyleArrowEnd, freeStyleArrowStartEnd) to draw freehand paths with arrowheads
freeStyleArrowStart, freeStyleArrowEnd, freeStyleArrowStartEnd) to draw freehand paths with arrowheads at the start, end, or both ends.FEAT(EditorSafeArea): Add convenience constructors none, symmetric, and fromLTRB for easier safe area configuration.
none, symmetric, and fromLTRB for easier safe area configuration.FIX(filter-editor): Ensure that the applied filters can also be removed.
FEAT(filter-editor): Restore previously applied filter when enableMultiSelection is disabled, allowing users to toggle between filters instant of stac
enableMultiSelection is disabled, allowing users to toggle between filters instant of stacking filters.FEAT(paint-editor): Add hexagon shape tool. More details in PR #738.
FIX(text-editor): Persist text shadow properties when exporting and importing state history. More details in PR #733.
FEAT(text-editor): Add an optional background and borders to the text editor input field. More details in PR #735.
FEAT(network-image): Added optional networkHeaders to the EditorImage. More details in PR #729.
networkHeaders to the EditorImage. More details in PR #729.Your coding agent can read these notes before it upgrades. Set up the MCP server →