NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1510 most downloaded on pub.dev
A Flutter image editor: Seamlessly enhance your images with user-friendly editing features.
Last release 3 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 9 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
447 releases · first in 2024
FEAT(Emoji-Editor): Update the emoji-editor to version 3.1.0 with custom view order configuration support.
3.1.0 with custom view order configuration support.FEAT(Filter): Filter-preview widgets are now animated with a default fadeInUp effect.
hideToolbarOnInteraction to true in the layerInteraction settings.One column per month.
FEAT(Custom-Widgets): add custom widgets to replace layer interaction buttons (edit, remove, rotateScale)
FIX(Import): Ensure imported numbers are type-safe even if int and double are incorrect. This resolves issue #221
FIX(Frosted-Glass): Resolve issue that loading-dialog didn't use the text from the i18n class.
REFACTOR(vars): remove deprecated variables
BREAKING FEAT(Callback): Added the ImageInfos parameter to the onDone callback in the crop-rotate-editor.
ImageInfos parameter to the onDone callback in the crop-rotate-editor.copyWith method to all config classes.emoji_picker_flutter dependency to version 3.0.0.vibration dependency to version 2.0.0.mime dependency to version 1.0.6.FIX(Crop-Editor): Ensure the editor respect the maximum output size.
FIX(Crop-Editor): Occasionally, image generation may fail due to issues related to internal Flutter widget builds. In such cases, we immediately retry
FIX(Crop-Editor): Ensure custom aspect ratio is applied when no changes are made.
FIX(Frosted-Glass-Design): Ensure configuration options such as canReset function correctly.
canReset function correctly.FEAT(Layer Management): Added method replaceLayer to enable replacing an existing layer at a specified index, enhancing layer management and history t
replaceLayer to enable replacing an existing layer at a specified index, enhancing layer management and history tracking capabilities.onTapEditSticker to display an edit button on stickers when tapped, allowing for customizable sticker editing interactions. This was requested in #188.REFACTOR(config): Rename 'editorIsZoomable' to 'enableZoom'
initinalTransformConfigs to 'initialTransformConfigs'STYLE(lint): Add extensive lint tests across multiple components to enhance code quality
FIX(loading-dialog): The loading dialog will now close correctly regardless of the animation builder's state, preventing potential UI freezes or block
> Breaking Changes The package now supports Flutter 3.24, which changes the onPopInvoked method. Introduced a new loading dialog as a singleton class.
Breaking Changes The package now supports Flutter
3.24, which changes theonPopInvokedmethod. Introduced a new loading dialog as a singleton class.
Overlay instead of Navigator.push. This provides more control over the dialog's hide process and prevents it from affecting other widgets.transformConfigs to initTransformConfigs.awaitLoadingDialogContext configuration as it is no longer required.FEAT(text-editor): Enable access to FocusNode and TextControl for enhanced editor control.
FIX(frosted-glass): Adjust frosted glass example icon button size.
FIX(loading-dialog): close loading dialog after generation process completes.
FIX(layout): Resolve right overflow issue on small size phones in the paint-editor. This was merged from the pull request #178.
FIX(paint-validator): Resolve right overflow issue. This resolves the issue #177.
FEAT(crop-rotate-editor): Allow users to read and update the aspect ratio using custom methods. This was requested in #169.
FEAT(draw-opacity): Add an option to let the user change the opacity of the drawing. This was discussed in #167.
FIX(done-button): Disable 'Done' button until image is decoded. This resolves the issue #166.
FIX(dialog-mode): Resolve issue where the subEditorPage had the wrong size in the dialog. This resolves the issue #164.
FIX(text-editor): Resolve issue where cursor size change with long text. This resolves issue #154.
FIX(content-recorder): Remove visible border in captured images when user added layers from outside. This resolves issue #156.
FIX(zoom-paint-editor): Prevent bottombar from wrapping items to a new line. This resolves issue #152.
FIX(import): Ensure to set correct emoji size after image rotation and history restore. This resolves issue #151.
FIX(content-recorder): Ensure final generated image respects bounds after rotation when captureOnlyBackgroundImageArea is true. This resolves issue #1
captureOnlyBackgroundImageArea is true. This resolves issue #145.FIX(PopScope): Check if route already popped in onPopInvoked and avoid showing close warning dialog if already popped.
onPopInvoked and avoid showing close warning dialog if already popped.MainEditorCallbacks which is triggered when onPopInvoked.FEAT(theme): Added option to change foreground and background color of layer interaction buttons.
FEAT(ContentRecorderController): Changed the logic how the ContentRecorderController records invisible widgets. This makes the image editor backward c
ContentRecorderController records invisible widgets. This makes the image editor backward compatible to older Flutter versions <= 3.19.x.FIX(vibration): The Vibration.hasVibrator check will now only happen if the user has enabled hitVibration in the helper-line configs. This resolves is
Vibration.hasVibrator check will now only happen if the user has enabled hitVibration in the helper-line configs. This resolves issue #139.FEAT(zoom): Paint-Editor and Main-Editor has now option for zooming. An example of how to enable this can be found here
FEAT(text-editor): Add autocorrect and enableSuggestions configs. This was requested in #132
FIX(emoji-picker): Ensure the emoji-picker is rendered inside the safe areas. This resolves issue #126.
FIX(crop-rotate-editor): Resolve incorrect transformation issue in crop editor.
FIX(sticker-export): Resolve incorrect export from sticker images causing lower resolution.
FEAT(layer-scale): Add ability to set minimum and maximum scale factor for layers. This was requested in #122
FIX(text-editor): Resolve misapplication of secondary color. This resolves issue #105.
FEAT(text-editor): Added the ability to programmatically set the secondary color next to the primary color.
FEAT(decode-image): Ability to decode the image from external, allowing to change the background image dynamically, which was requested in #110.
REFACTOR(designs): Made the "Frosted-Glass" and "WhatsApp" designs more compact, making them easier to implement with less code.
FIX(import-history): Resolve incorrect multiple importing from state history. This resolves issue #106.
> Detailed information about this release and why these breaking-changes are necessary can be found here.
Detailed information about this release and why these breaking-changes are necessary can be found here.
BREAKING FEAT: Remove hardcoded WhatsApp-Design.
BREAKING FEAT: Rewrite the entire logic of customWidgets.
BREAKING FEAT: Move initialColor and initialStrokeWidth from paintEditorConfigs to imageEditorTheme-paintingEditor.
FEAT: Add new design Frosted-Glass.
FEAT: The WhatsApp theme is now fully editable.
FEAT: Smaller build size and minimal performance boost because the Whatsapp design is no longer hardcoded.
FEAT: Make it easier to use customWidget.
FEAT: Editor design is now more customizable.
FEAT(callbacks): Add to the main-editor callbacks onTap, onDoubleTap and onLongPress which was requested in #104.
onTap, onDoubleTap and onLongPress which was requested in #104.FEAT(custom-widget): Add custom widgets to the line-width bottomsheet in the Paint Editor, which was requested in #103.
FIX(state-history): Resolve incorrect import/export from transform-configs. This resolves issue #102.
FIX(import-history): Resolve incorrect import of fontfamily and font-scale. This issue was discussed in #83.
FEAT(remove-all-layers): Add method to remove all layers as requested in #80.
FEAT(hover-remove-btn): Extend the remove area so that it always detects the layer hovering correctly, even if the user creates a custom widget with a
FIX(hover-remove-btn): Ensure remove area works correctly on iOS rotated devices. This fix GitHub issue #75.
FEAT(custom-color-picker): Add currently selected color to custom color picker widget.
Nothing published for this version
FIX(layer): call setState when adding a new layer from external source
Nothing published for this version
FEAT(custom-slider): add a custom widget to replace the slider in the filter and blur editor.
FEAT(hero): enable hero animation when opening the editor
FIX(done-editing): allow users to continue editing after pressing done if the image-editor doesn't close
Your coding agent can read these notes before it upgrades. Set up the MCP server →