pro_image_editor 9.8.1
pro_image_editor: ^9.8.1 copied to clipboard
A Flutter image editor: Seamlessly enhance your images with user-friendly editing features.
Changelog #
9.8.1 #
- FIX(Image-Generation): Resolved an issue that the image generation was slowly.
9.8.0 #
- FEAT(Layer): Introduce
BoxConstraintstoLayerclass for enhanced constraint management and layout control.
9.7.3 #
- FEAT(Main-Editor): Add EditorSafeArea to the Main editor to follow SubEditor logic.
9.7.1 #
- FIX(Import): Ensure imported numbers are type-safe even if int and double are incorrect. This resolves issue #447.
9.7.0 #
- FEAT(image-converter): Add singleton
ImageConverterclass for format conversion without the image editor.
9.6.1 #
9.6.0 #
- FEAT(double-tap): Support double-tap to zoom in/out when zoom is enabled. More details in Feature-Request #429.
9.5.2 #
- FIX(zoom): Fixed issue where config
enableMainEditorZoomFactorhad no effect when creating a new text-layer. Resolves #426.
9.5.0 #
- FEAT(callback): Added
copyWithmethod to all callback models. More details in Feature-Request #424. - FEAT(zoom): Preserved zoom state by sharing Matrix4 between paint and main editor
9.4.1 #
- FEAT(callback): Added
onSelectedLayerChangedcallback to notify when the selected layer changes. More details in PR #423.
9.4.0 #
- FEAT(jpeg-encoder): Add
jpegBackgroundColoroption toImageGenerationConfigsto allow customization of JPEG background color. - FIX(crop_editor): Add missing copyWith parameters to ensure proper cloning of configuration states.
- FIX(PaintEditor.drawing): Ensure
cropToImageBoundsisfalseto prevent unintended cropping behavior.
9.3.0 #
- FEAT: Video editing has now been fully implemented in the image editor across all platforms except the web, for which support is not planned. For more details and a list of limitations, please refer to that discussion thread.
9.2.0 #
- FEAT: Added
clearLayerSelectionmethod to reset selected layers. - FEAT: Added
selectLayerByIndexmethod to select a layer using its index. - FEAT: Added
selectLayerByIdmethod to select a layer by its unique ID.
9.1.0 #
- FEAT: Replaced the external packages
emoji_picker_flutter,universal_io, andflutter_web_pluginswith lightweight internal implementations.
The editor now only relies on official Dart and Flutter packages, reducing dependencies and improving maintainability. - FEAT: Added a new preview-only constructor for video editing:
ProImageEditor.video.
This feature allows previewing video edits but does not yet support video export.
Example usage can be found here.
9.0.7 #
- FIX(import): Resolve state restoration issue causing layer shift on cropped images. Resolves #292.
9.0.6 #
- FIX(state-history): Resolve issue where the state history limitation does not work when
enableBackgroundGenerationis set tofalse.
9.0.5 #
- FIX(Wasm): Fixes an issue where image generation fails when using WebAssembly. Resolves #391.
9.0.4 #
- DOCS(readme): simplify README for better readability
9.0.3 #
- FEAT: Add getter
editorScaleFactorto retrieve current scale factor. See pull request #392 for more details.
9.0.2 #
- STYLE: Improved Dart code formatting
9.0.1 #
- FIX(EditorImage): Support
Filetype in addition to file path
9.0.0 #
-
FEAT(callbacks): Add new callbacks that are triggered when a layer intersects with a helper line.
-
FEAT(TextLayer): Improve the text layer hit box for better gesture recognition.
-
FEAT(File): The file constructor in the main editor and sub-editors now supports adding just the file path in addition to the File itself.
-
FIX(Layers): Fix incorrect layer selection when drawing lines overlay other layers
Breaking Changes
- Removed the vibration package dependency and the support for internal feedback vibration. You can read more about this change and see example code on how to implement feedback support here.
- Replaced
mime,image,archive, andcryptopackages with smaller, internally versions. - Moved configuration
localeinsideEmojiEditorConfigstoI18nEmojiEditor. - Changed the default behavior so that emoji search text is no longer automatically translated, reducing the size of the application by about 1.5MB. The example of how to enable auto-translation or translate a specific locale can be found here.
- Removed all deprecated configuration settings.
8.3.6 #
- FIX(design-grounded): Fixed an issue where the scrollbar in the grounded bottombar did not restore correctly after opening a subeditor.
- FIX(design-whatsapp): Fixed an issue where the filter in the WhatsApp design could not be deselected.
8.3.5 #
- FIX(layer-stack): Resolved an issue where the outside overlay color on layers depended on the crop_rotate_editor instead of the active subeditor.
8.3.4 #
- FIX(grounded-design): Resolved an issue in the grounded design where switching between screens caused an error due to the ScrollController.
8.3.3 #
- FIX(layer-interaction): Resolved an issue where layers with blocked interaction also prevented interaction with background layers. Resolves #374
8.3.2 #
- FIX(emoji-editor): Resolved an issue where categoryViewConfig caused an error. Resolves #373.
8.3.1 #
- REFACTOR(configs): Rename configuration properties for clarity.
8.3.0 #
- FEAT(paint-editor): Add a new 'pixelate' paint mode to censor specific areas. This paint mode is only supported when using the Impeller rendering engine.
- FEAT(CensorConfigs): Add a new configuration option,
enableRoundArea, which allows the censored area to be rounded instead of rectangular.
8.2.0 #
- FEAT(paint-editor): Add a new 'blur' paint mode to censor specific areas.
8.1.12 #
- FEAT(layers): Add missing
showLayersconfig to enable/disable layers in paint and crop editor.
8.1.11 #
- FIX(export): Resolve an issue where exporting the first state history did return all state histories. Resolves #353.
8.1.10 #
- FEAT(callback): Introduced
onEscapeButtoncallback insideMainEditorCallbacksto allow external handling of the Escape key logic.
8.1.9 #
- FIX(text-editor): Ensure text editor layer scales correctly when editing.
AddedenableMainEditorZoomFactortotextEditorConfigsto apply the zoom factor in the text editor as well. Resolves #349.
8.1.8 #
- FIX(export): Ensure filters, tune adjustments, and blur configs are exported for
ExportHistorySpan.currentandExportHistorySpan.currentAndForward.
8.1.7 #
- FEAT(MainEditorConfigs): Add
enableEscapeButtonto enable or disable the escape button listener.
8.1.6 #
- FEAT(layer): Add meta field to layermodels for custom metadata in export/import.
8.1.5 #
- FEAT(export): Optimize the export process by including only parameters that were modified in tune adjustments. This reduces the exported file size.
8.1.4 #
- FIX(generation): Use
captureOnlyBackgroundImageAreainstead ofcaptureOnlyDrawingBoundsfor background cropping.
8.1.3 #
- PERF(capture-image): Improved image capture performance by minimizing its impact on the main thread.
8.1.2 #
- FIX(paint-editor): Ensure bottombar selection updates in UI when changed.
- FIX(paint-editor): Correct appBar canRedo to use the proper function instead of canUndo.
- FIX(layer): Resolve issue where selecting layers that overlap did not function as expected. Resolves issue #282
- FIX(import): Resolve issue where transformations exported from the crop-rotate editor were not properly imported.
8.1.1 #
8.1.0 #
- FEAT(layer): Added new methods
lockAllLayersandunlockAllLayersto the main editor, enabling direct locking or unlocking of all layers.
8.0.4 #
- FIX(export/import): Resolve an issue where exported stickers within the JSON file could no longer be imported. Resolves issue #334
8.0.3 #
- FIX(blur-editor): Resolve issue where the slider animation does not work in the blur editor.
- FIX(layer-context-menu): Resolve issue where the context menu is incorrectly positioned when the editor is embedded within the screen.
- CHORE(dependencies): Update package
vibrationto3.1.1.
8.0.2 #
- FIX(paint-editor): Resolve issue where the paint editor did not use
appBarColorfrom the style configuration. More details in PR #333
8.0.1 #
- FIX(layer-interaction): Fix issue where layers remove-area still appear when attempting to move a layer, even when
enableMoveis set tofalse. Resolves issue #332 - FEAT(layer-interaction): Introduce
enableEditto the layer interaction options, allowing users to disable direct editing of text layers.
8.0.0 #
Features
-
Layer Interaction Overhaul:
- Replaced the old
enableInteractionproperty on layers with the newLayerInteractionclass, introducing more specific configuration options:enableMove,enableScale,enableRotate, andenableSelection.
- This provides greater flexibility and precision in configuring layer interactions.
- Replaced the old
-
Customizable Interaction Widgets:
- Updated
LayerInteractionWidgetswith two new options:children: Allows users to define their own interactive button designs when the layer is selected.border: Enables users to customize the border appearance of selected layers for a fully tailored design.
- Updated
Breaking Changes
- Removed all deprecated values, including:
TextLayerDataPaintingLayerDataEmojiLayerDataStickerLayerDataReactiveWidgetDataReactiveAppbarDataserializeStickerexportStickers
7.6.5 #
- CHORE(dependencies): Update
emoji_picker_flutterto4.3.0,vibrationto3.0.0andhttpto1.3.0.
7.6.4 #
- CHORE(vibration): Updated the
vibrationpackage to version2.1.0. - FIX(vibration): Resolved lint issues introduced by the package update.
7.6.3 #
- FIX(grounded-design): Fixed an issue where aspect ratios were incorrectly selected regardless of the
canChangeAspectRatioflag.
7.6.2 #
- DOCS(readme): update readme to reflect latest changes
7.6.1 #
- FIX(paint-editor): Resolved an issue where the freestyle painter didn't update the painting in real-time until the user finished painting.
7.6.0 #
- FEAT(state-history): Improve internal state history to consume less RAM during in-app usage, enhancing performance in memory-constrained environments.
- FEAT(export/import): Introduce reference-based export mechanism to reduce redundancy and significantly minimize export file size.
- FEAT(export/import): Add
enableMinifyoption toExportEditorConfigs(enabled by default), which further reduces the output file size by minifying key structures. Even with minification disabled, export sizes are notably smaller due to optimizations. - REFACTOR(tests): Reorganize tests by moving module-specific tests to
featuresandshareddirectories for better maintainability. - TEST(export/import): Add unit tests for
key_minifierto ensure reliability of the minification process.
See pull request #322 for more details.
7.5.0 #
- FEAT(export/import): Improve widget-layer import/export to enable setting up a
widgetLoaderinside theImportEditorConfigsthat loads widgets using custom logic without converting them toUint8List. See pull request #315 for more details.
7.4.0 #
- FEAT(emoji): Preload emoji font on web platforms when the main editor opens. This behavior can be enabled or disabled in the emojiEditor configuration using the
enablePreloadWebFontflag.
7.3.2 #
- FIX(web): Resolved performance issues after implementing changes for WASM compatibility. Replaced
dartifywithtoDart, improving conversion performance from an average of 600ms to 20ms.
7.3.1 #
- FIX(crop): Corrected an issue where cropping with specific aspect ratios did not work when the editor was embedded.
7.3.0 #
- FEAT(dependencies): Update
emoji_picker_flutterto4.2.0andimageto4.5.2. Adds support for custom translations in emoji editor for emoji search.
7.2.0 #
- FEAT(export-history): Introduce the
serializeStickerparameter toExportEditorConfigsto enable exporting onlyStickerLayerDatawithout converting the sticker to aUint8List. This change incorporates the updates from pull request #306.
7.1.1 #
- FIX(android): Resolve crop-drag conflicts with navigation gestures on android. This resolves issue #303
7.1.0 #
- FEAT(Wasm): Replaced the
dart:htmlanddart:jspackages withpackage:webanddart:js_interopto enable WebAssembly (Wasm) support. The current Flutter version3.27.1has an open issue with theColorFilteredwidget. As a result, the tune and filter editor will not function in Wasm. Once Flutter resolves this issue, the editor should work without requiring further updates.
7.0.1 #
- FIX(zoom): Corrected the layer rotation calculation when the user drags the rotation button. This resolves issue #266
7.0.0 #
Changed #
- File Structure Update:
- Moved
custom widgets,icons, andthemefiles into theconfigsdirectory for better organization. - Renamed all
themefiles tostylesto better reflect their purpose.
- Moved
Breaking Changes #
- File renaming and restructuring require updates to your configuration file:
custom widgets,icons, andthemefiles are now located directly in theconfigsdirectory of the editor.- All theme classes are renamed to end with
Stylefor consistency.
For more details on why these breaking changes were made and what improvements they bring, check out that GitHub discussion.
6.2.3 #
- FIX(layer): Resolve issue that layer reposition correctly after screen rotation. This resolves issue #283
6.2.1 #
- FIX(lint): Resolve lint issues after upgrading to Flutter
3.27.0
6.2.0 #
- FEAT(Main-Editor): Added
updateBackgroundImagemethod to update the editor's background image.
6.1.6 #
- STYLE: Format dart code
6.1.5 #
- FIX(import): Fixed an issue where imported layers didn't scale correctly on different screen sizes. This resolves issue #272
6.1.4 #
- FIX(zoom): Fixed an issue where the minimum zoom level setting had no effect, ensuring proper enforcement of zoom boundaries in the viewer. This resolves issue #266
6.1.3 #
- FIX(keyboard): resolve issue that escape key throw an error when the context menu is open. This resolves issue #260
6.1.2 #
- STYLE(AppBar): moved close action to AppBar's leading parameter for improved layout consistency.
- STYLE(AppBar): updated IconButtons to use default 8-point all-around padding, enhancing visual balance.
- STYLE(AppBar): adjusted loading indicator padding to a multiple of 2 to align with design system standards.
6.1.1 #
- FIX(CustomWidgets): resolve issue preventing user from using custom widget
removeLayerArea.
6.1.0 #
- FEAT(Layer): Introduce the
enableInteractionconfiguration in theLayerclass to toggle interaction capabilities. - FEAT(CustomWidgets): Add
bodyItemsRecordedto all editors which can direct generate the final image. This option enables the recording of custom body widgets, enhancing frame functionality. - DOC(Frame): Add an example how users can add a frame.
6.0.2 #
- FIX(Recorder): Resolve issue where the editor would incorrectly capture drawing boundaries if the user set
captureOnlyDrawingBoundstotrue. This resolves issue #249
6.0.1 #
- FIX(Generation-Configs): Removed unnecessary assert for
captureOnlyBackgroundImageAreaandcaptureOnlyDrawingBounds, which was blocking certain combinations for generating transparent images. Details discussed here.
6.0.0 #
-
FEAT(Tune-Editor): Introduced the new "Tune" editor, enabling users to adjust image contrast, saturation, and brightness for enhanced control over image tuning.
-
CHORE(Dependency): Update
imagedependency to version4.3.0. -
CHORE(Dependency): Update
vibrationdependency to version2.0.1. -
CHORE(Dependency): Update
mimedependency to version2.0.0. -
FIX(Example): Resolve the issue where the
movable_background_imageexample displays the helper lines in the wrong position. -
FIX(Example): Resolve all linting issues in the example code.
5.4.2 #
- FIX(Paint-Editor): Resolve issue where undo-redo action capturing the incorrect image. This resolves issue #239
5.4.1 #
- FEAT(Emoji-Editor): Update the emoji-editor to version
3.1.0with custom view order configuration support.
5.4.0 #
- FEAT(Filter): Filter-preview widgets are now animated with a default fadeInUp effect.
- FEAT(Layer-Interaction): Toolbars will no longer hide by default when interacting with a layer. To restore the previous behavior, set
hideToolbarOnInteractionto true in thelayerInteractionsettings. - FEAT(Design): Introduced a new design theme called "Grounded".
5.3.0 #
- FEAT(Custom-Widgets): add custom widgets to replace layer interaction buttons (edit, remove, rotateScale)
5.2.3 #
- FIX(Import): Ensure imported numbers are type-safe even if int and double are incorrect. This resolves issue #221
5.2.2 #
- FIX(Frosted-Glass): Resolve issue that loading-dialog didn't use the text from the i18n class.
5.2.1 #
- REFACTOR(vars): remove deprecated variables
5.2.0 #
- BREAKING FEAT(Callback): Added the
ImageInfosparameter to theonDonecallback in the crop-rotate-editor. - FEAT(Config): Add
copyWithmethod to all config classes. - DOCS(Example): Add an example how to start with the crop-rotate-editor and move than to the main-editor.
- CHORE(Dependency): Update
emoji_picker_flutterdependency to version3.0.0. - CHORE(Dependency): Update
vibrationdependency to version2.0.0. - CHORE(Dependency): Update
mimedependency to version1.0.6.
5.1.4 #
- FIX(Crop-Editor): Ensure the editor respect the maximum output size.
5.1.3 #
- FIX(Crop-Editor): Occasionally, image generation may fail due to issues related to internal Flutter widget builds. In such cases, we immediately retry the generation to ensure the final image is produced. Note that this issue primarily occurs in debug mode and it was very rare in release mode.
5.1.2 #
- FIX(Crop-Editor): Ensure custom aspect ratio is applied when no changes are made.
5.1.1 #
- FIX(Frosted-Glass-Design): Ensure configuration options such as
canResetfunction correctly. - DOCS(Contributors): Include contributor avatars in the README file.
5.1.0 #
- FEAT(Layer Management): Added method
replaceLayerto enable replacing an existing layer at a specified index, enhancing layer management and history tracking capabilities. - FEAT(Sticker Interaction): Added callback
onTapEditStickerto display an edit button on stickers when tapped, allowing for customizable sticker editing interactions. This was requested in #188.
5.0.3 #
- REFACTOR(config): Rename 'editorIsZoomable' to 'enableZoom'
- FIX(config): Correct typo
initinalTransformConfigsto 'initialTransformConfigs' - STYLE(spelling): Correct spelling errors in code comments and documentation
5.0.2 #
- STYLE(lint): Add extensive lint tests across multiple components to enhance code quality
5.0.1 #
- FIX(loading-dialog): The loading dialog will now close correctly regardless of the animation builder's state, preventing potential UI freezes or blocks.
5.0.0 #
Breaking Changes The package now supports Flutter
3.24, which changes theonPopInvokedmethod. Introduced a new loading dialog as a singleton class.
- FEAT(loading-dialog): Replaced the existing loading dialog with a new solution which use
Overlayinstead ofNavigator.push. This provides more control over the dialog's hide process and prevents it from affecting other widgets. - REFACTOR(editor): Renamed
transformConfigstoinitTransformConfigs. - FIX(flutter-version): Updated deprecated code for Flutter 3.24 compatibility.
- CHORE: Removed the
awaitLoadingDialogContextconfiguration as it is no longer required.
4.3.6 #
- FEAT(text-editor): Enable access to FocusNode and TextControl for enhanced editor control.
4.3.5 #
- FIX(frosted-glass): Adjust frosted glass example icon button size.
- FEAT(filter-button): Updated the text color of the selected filter to visually indicate which filter is currently active, enhancing user interaction and clarity.
4.3.4 #
- FIX(loading-dialog): close loading dialog after generation process completes.
4.3.3 #
- FIX(layout): Resolve right overflow issue on small size phones in the paint-editor. This was merged from the pull request #178.
4.3.1 #
- FEAT(crop-rotate-editor): Allow users to read and update the aspect ratio using custom methods. This was requested in #169.
4.3.0 #
- FEAT(draw-opacity): Add an option to let the user change the opacity of the drawing. This was discussed in #167.
4.2.9 #
- FIX(done-button): Disable 'Done' button until image is decoded. This resolves the issue #166.
4.2.8 #
- FIX(dialog-mode): Resolve issue where the subEditorPage had the wrong size in the dialog. This resolves the issue #164.
4.2.7 #
- FIX(text-editor): Resolve issue where cursor size change with long text. This resolves issue #154.
4.2.6 #
- FIX(content-recorder): Remove visible border in captured images when user added layers from outside. This resolves issue #156.
4.2.5 #
- FIX(zoom-paint-editor): Prevent bottombar from wrapping items to a new line. This resolves issue #152.
4.2.4 #
- FIX(import): Ensure to set correct emoji size after image rotation and history restore. This resolves issue #151.
4.2.3 #
- FIX(content-recorder): Ensure final generated image respects bounds after rotation when
captureOnlyBackgroundImageAreaistrue. This resolves issue #145.
4.2.2 #
- FIX(PopScope): Check if route already popped in
onPopInvokedand avoid showing close warning dialog if already popped. - FEAT(Callbacks): Added new callback to
MainEditorCallbackswhich is triggered whenonPopInvoked.
4.2.1 #
- FEAT(theme): Added option to change foreground and background color of layer interaction buttons.
4.2.0 #
- FEAT(ContentRecorderController): Changed the logic how the
ContentRecorderControllerrecords invisible widgets. This makes the image editor backward compatible to older Flutter versions <=3.19.x.
4.1.1 #
- FIX(vibration): The
Vibration.hasVibratorcheck will now only happen if the user has enabled hitVibration in the helper-line configs. This resolves issue #139.
4.1.0 #
- FEAT(zoom): Paint-Editor and Main-Editor has now option for zooming. An example of how to enable this can be found here
4.0.10 #
4.0.9 #
- FIX(emoji-picker): Ensure the emoji-picker is rendered inside the safe areas. This resolves issue #126.
4.0.8 #
4.0.7 #
- FIX(sticker-export): Resolve incorrect export from sticker images causing lower resolution.
- FEAT(custom-widget): Add custom widgets for font-size bottom sheet. This was requested in #123
4.0.6 #
- FEAT(layer-scale): Add ability to set minimum and maximum scale factor for layers. This was requested in #122
4.0.5 #
4.0.4 #
- FEAT(text-editor): Added the ability to programmatically set the secondary color next to the primary color.
4.0.3 #
4.0.2 #
- REFACTOR(designs): Made the "Frosted-Glass" and "WhatsApp" designs more compact, making them easier to implement with less code.
4.0.1 #
- FIX(import-history): Resolve incorrect multiple importing from state history. This resolves issue #106.
4.0.0 #
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
initialColorandinitialStrokeWidthfrompaintEditorConfigstoimageEditorTheme-paintingEditor. -
FEAT: Add new design
Frosted-Glass. -
FEAT: The
WhatsApptheme 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.
3.0.15 #
- FEAT(callbacks): Add to the main-editor callbacks
onTap,onDoubleTapandonLongPresswhich was requested in #104.
3.0.14 #
3.0.13 #
- FIX(state-history): Resolve incorrect import/export from transform-configs. This resolves issue #102.
3.0.12 #
- FIX(import-history): Resolve incorrect import of fontfamily and font-scale. This issue was discussed in #83.
3.0.10 #
- 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 different position for it.
3.0.9 #
- FIX(hover-remove-btn): Ensure remove area works correctly on iOS rotated devices. This fix GitHub issue #75.
3.0.8 #
- FEAT(custom-color-picker): Add currently selected color to custom color picker widget.
3.0.7 #
BREAKING-CHANGES:
-
BREAKING FEAT: The property
generateOnlyDrawingBoundshas been renamed tocaptureOnlyDrawingBounds. -
FEAT: The editor will now capture by default only the area from the background image and cut all layers outside. To disable this behavior, you can set the flag
captureOnlyBackgroundImageAreatofalsein the configurations, like below:
configs: ProImageEditorConfigs(
imageGenerationConfigs: const imageGenerationConfigs(
captureOnlyBackgroundImageArea: false,
),
),
- FEAT: Visually overlay the background color with opacity over layers outside the capture area.
- FEAT: New mode in the paint-editor to erase painted layers.
3.0.6 #
- FIX(layer): call setState when adding a new layer from external source
- FIX(web_worker): remove web_worker.dart from web build to resolve lint errors
3.0.5 #
- FEAT(custom-slider): add a custom widget to replace the slider in the filter and blur editor.
- FEAT(custom-color-picker): add a custom widget to replace the color picker in the text and paint editor.
- FEAT(custom-crop-aspect-ratio): add a custom widget to replace the aspect ratio picker.
- FIX(main-editor): correct image and layer display when bottombar or appbar is not visible.
3.0.4 #
- FEAT(hero): enable hero animation when opening the editor
3.0.3 #
- FIX(done-editing): allow users to continue editing after pressing done if the image-editor doesn't close
3.0.2 #
- CHORE(example): also release example in pub.flutter-io.cn for pub-points
3.0.1 #
- DOCS(preview-videos): update preview videos to version 3.0.0
3.0.0 #
Replace the existing crop-rotate editor, which depended on the
extended_imageandimage_editorpackage, with a new solution that doesn't depend on this packages.
-
BREAKING FEAT: Move
onImageEditingComplete,onCloseEditorandonUpdateUIcallbacks insidecallbacks: ProImageEditorCallbacks(). -
BREAKING FEAT: Change the
allowCompleteWithEmptyEditingconfig toallowEmptyEditCompletion. Use it new like thisconfigs: ProImageEditorConfigs(imageGenerationConfigs: imageGenerationConfigs(allowEmptyEditCompletion: false)). The default value is now alsotrueand notfalseanymore. -
BREAKING FEAT: Change the layer initial offset position to the center of the screen, not the top left.
-
BREAKING FEAT: Rename
ColorFilterGeneratortoFilterModel. -
BREAKING FEAT: Changed the logic of overlaying multiple layers, which may produce different results than before.
-
BREAKING FEAT: Default
maxBlurconfiguration is now 5.0 instead of 2.0. -
BREAKING FEAT: Move
editorBoxConstraintsBuilderfromconfigstoimageEditorTheme. -
FEAT: Crop-Rotate-Editor
- Double tap to zoom in and out
- Multiple cursor support
- Undo/Redo function
- Reset function
- Flip function
- Animated rotation
- Keyboard shortcut support
- More theme and configuration options
- Hero animation for image and layers
- Round "cropper" for profile pictures
-
FEAT: Paint-Editor
- Standalone drawing of signatures or paintings
-
FEAT: Emoji-Editor
- Infinite scrolling through all categories
- Optional as
DraggableScrollableSheet
-
FEAT: Sticker-Editor
- Optional as
DraggableScrollableSheet
- Optional as
-
FEAT: Standalone editors "Painting, Crop-Rotate, Filter, Blur"
-
FEAT: Option to generate thumbnails first and the final image later for faster results with high-resolution images
-
FEAT: Generate configs to change things like the output format
-
FIX: Layer rendering outside the background image now works everywhere.
-
FIX: The editor no longer depends on packages that only work with supported "native" functionality, which ensures that the editor works on all platforms. This fixes issue #23.
-
PERF: Changes are handled internally across all editors, so there's no conversion delay when opening or closing the Crop-Rotate Editor.
-
PERF: Image generation is now isolated from the main thread, speeding up the process significantly. On the web, it runs inside separate web workers.
-
PERF: Filters recalculate matrix only when they change and not after every state refresh.
-
PERF: Faster emoji rendering when scrolling in the Emoji Editor.
2.7.11 #
- MERGE: pull request #60 from diegotori/editor_bottom_sheet_constraints.
- BoxConstraints support when opening editors in bottom sheets.
2.7.10 #
- FIX: resolve loading-dialog issue with Asuka package closes GitHub issue #48.
2.7.9 #
- CHORE: Update the
screenshotpackage so that it's compatible with Flutter 3.22.0. This fix GitHub issue #45.
2.7.8 #
- FEAT: Added option for layers to be selected upon creation. Details in GitHub issue #44.
2.7.7 #
- FIX: Deselect all layers when finished editing, resolving GitHub issue #42.
2.7.6 #
- FEAT: Allow users to create a custom bottomBar for the text editor. Details in GitHub issue #40
2.7.5 #
- FIX: Corrected pixelRatio and layer interaction calculations in ProImageEditor for smaller screen areas, ensuring accuracy across various device sizes. See GitHub issue #37.
2.7.4 #
- FIX: Migrated all emoji editor theme configurations from
EmojiEditorConfigstoEmojiEditorThemeinsideImageEditorTheme, resolving GitHub issue #38.
2.7.3 #
- FIX: Correct platform conditional to include web check. Details in GitHub issue #35
2.7.2 #
- FEAT: Added a function in
customWidgetswithinconfigsto show a customcloseWarningDialog.
2.7.1 #
- FEAT: Introduces the ability for users to specify the initial offset position for new layers.
2.7.0 #
- FEAT: Layers can now be selected for rotation, scaling, and deletion, enhancing user control and editing capabilities.
- FEAT: Improved functionality particularly on desktop devices, where users can now manipulate layers more efficiently.
- FEAT: Introduced keyboard shortcuts: Ctrl+Z: for undo and Ctrl+Shift+Z: for redo actions, streamlining workflow and enhancing user experience.
- FIX: Fixed an issue where rotated layers with unequal width and height couldn't be tapped in the corners, ensuring consistent interaction regardless of rotation.
2.6.8 #
- FEAT: Renamed the property
whatsAppCustomTextStylestocustomTextStylesin theTextEditorConfigs. This change allows users to set multiple fonts also in the simple editor. - FEAT: Prepare some code for a new layer interaction feature that allows users to select a layer and then rotate or scale them.
2.6.7 #
- FIX: correct layer interaction to handle multiple layers
- REFACTOR: improve code readability for better maintainability
2.6.6 #
- REFACTOR: Update editor code examples
2.6.5 #
- FEAT: Make
stateHistoryandactiveLayerspublic and addmoveLayerListPositionmethod to improve layer management functionality.
2.6.4 #
- FIX(iOS)**: resolve editor error on iOS devices with cupertino design when editing completion
2.6.3 #
- FEAT: Add preview screen to sample application for displaying edited images
- CHORE: Update emoji_picker_flutter dependency to version 2.2.0
2.6.2 #
- FEAT: Add a custom widget option to the Whatsapp design. This allows user to create same as in whatsapp, a text field with a send button or any other widget they want.
2.6.1 #
- DOCS: Update README for better image viewing
2.6.0 #
- FEAT: Added prebuilt design option inspired by WhatsApp design. Now the image editor includes a prebuilt design that closely resembles the visual style of WhatsApp, offering users a familiar and intuitive editing experience.
2.5.8 #
- CHORE: Dependency updates
2.5.7 #
- BREAKING FEAT: Changed the way aspect ratios and the initial value are set.
- BREAKING FEAT: I18n for crop aspect ratios must now be set in the crop-rotate editor configs.
2.5.6 #
- FEAT: Allow users to set only the required crop aspect ratios. Details in GitHub issue #20
2.5.5 #
- FIX: Fix flutter analyze tests and format code.
2.5.4 #
- FEAT: Add the
strokeWidthOnChangedcallback. Details in GitHub pull #19
2.5.3 #
- FEAT: Customize dialog colors in Cupertino design. Details in GitHub pull #18
2.5.2 #
- FIX: The
allowCompleteWithEmptyEditinglogic was dropped by the committing. Details in GitHub pull #17
2.5.1 #
- FEAT: Set theme for alert dialog. Details in GitHub pull #16
2.5.0 #
- FEAT: New editor
Blur-Editor. Details in GitHub pull #15
2.4.6 #
- FEAT: Add
Change Font Scalefeature to text editor. Details in GitHub pull #14
2.4.5 #
- FEAT: Add parameter
allowCompleteWithEmptyEditing. Details in GitHub pull #11
2.4.4 #
- FIX: Hotfix for transparent images that are not displaying correctly after crop/rotate. Details in GitHub issue #10
2.4.3 #
- REFACTOR: Upgrade Flutter to latest version and fix new analyze issues.
2.4.2 #
- FEAT: Add landscape mode for device orientation, details in GitHub issue #7
2.4.1 #
- FIX: Hotfix to close the editor with custom parameters, details in GitHub issue #6
2.4.0 #
- BREAKING CHORE: Updated
emoji_picker_flutterdependency to version 2.0.0. This version introduces significant enhancements, including:- Improved configuration options for better customization.
- Addition of a new search function for easier emoji discovery.
- Expanded design options for enhanced visual appearance.
2.3.2 #
- STYLE: Enclose if statement in block in pro_image_editor_main.dart
2.3.1 #
- FIX: fix overflow bug in BottomAppBar, details in GitHub issue #5
2.3.0 #
- FEAT: Enhance state history management
2.2.3 #
- FEAT: Improved the fly animation within the Hero widget to provide a smoother and more visually appealing experience.
2.2.2 #
- FIX: example bug for
emojiSet, details in GitHub issue #2
2.2.1 #
- FIX: close warning bug, details in GitHub issue #1
2.2.0 #
- FEAT: Added functionality to extend the bottomAppBar with custom widgets, providing users with more flexibility in customizing the bottom bar.
2.1.1 #
- STYLE: Improved Dart code formatting
2.1.0 #
- FEAT: Added functionality to extend the appbar with custom widgets, providing users with more flexibility in customizing the app's header.
2.0.0 #
- FEAT: Introducing the "Sticker" editor for seamless loading of stickers and widgets directly into the editor.
1.0.3 #
- DOCS: Update README.md with improved preview image
1.0.2 #
- FEAT: Improved accessibility:
ProImageEditorConfigsis now directly exported for easier integration and usage.
1.0.1 #
- DOCS: Updated images in README.md for enhanced clarity
- DOCS: Added documentation to adaptive_dialog.dart for better code understanding
- STYLE: Formatted Dart code across various modules for improved consistency
1.0.0 #
- FEAT: PaintEditor
- FEAT: TextEditor
- FEAT: CropRotateEditor
- FEAT: FilterEditor
- FEAT: EmojiEditor