A Flutter image editor with support for paint, text, filters, emojis, stickers and more

Overview

ImageEditor

Image Editor Plugin with simple, easy support for image editing using Paints, Text, Filters, Emoji and Sticker like stories.

To start with this, we need to simply add the dependencies in the gradle file of our app module like this

Installation

First, add image_editor_plus: as a dependency in your pubspec.yaml file.

Import

import 'package:image_editor_plus/image_editor_plus.dart';

iOS

Add the following keys to your Info.plist file, located in /ios/Runner/Info.plist :

  • NSPhotoLibraryUsageDescription - describe why your app needs permission for the photo library. This is called Privacy - Photo Library Usage Description in the visual editor.
  • NSCameraUsageDescription - describe why your app needs access to the camera. This is called Privacy - Camera Usage Description in the visual editor.
  • NSMicrophoneUsageDescription - describe why your app needs access to the microphone, if you intend to record videos. This is called Privacy - Microphone Usage Description in the visual editor.

Or in text format add the key:

<key>NSPhotoLibraryUsageDescriptionkey>
<string>Used to demonstrate image picker pluginstring>
<key>NSCameraUsageDescriptionkey>
<string>Used to demonstrate image picker pluginstring>
<key>NSMicrophoneUsageDescriptionkey>
<string>Used to capture audio for image picker pluginstring>

Android

No configuration required - the plugin should work out of the box.

Example - Full Editor

final editedImage = await Navigator.push(
    context,
    MaterialPageRoute(
        builder: (context) => ImageEditor(
            image: data, // <-- Uint8List of image
            appBarColor: Colors.blue,
            bottomBarColor: Colors.blue,
        ),
    ),
);

Example - Image Crop Only

final editedImage = await Navigator.push(
    context,
    MaterialPageRoute(
        builder: (context) => ImageCropper(
            image: data, // <-- Uint8List of image
        ),
    ),
);

MIT License

Copyright (c) 2022 [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Fixed issues

    Fixed issues

    Attempted to fix following:

    • #17
    • #10
    • #12
    • #13

    About issue 12 and 13: I could not reproduce the issue before so not sure if they actually got fixed

    A few other fixes including UI fixes and text color not updating with slider

    I also forced a few theme colors (mainly dark) to stop the entire mess of colors mixing up

    Most dependencies were updated

    opened by DizzasTeR 10
  • Unable to launch app on ios device

    Unable to launch app on ios device

    Error logs

    ../../../../../Library/flutter/.pub-cache/hosted/pub.dartlang.org/image_editor_plus-0.1.2/lib/image_editor_plus.dart:1278:38: 
    Error: The method 'build' isn't defined for the class 'ColorFilterGenerator'.
        - 'ColorFilterGenerator' is from 'package:colorfilter_generator/colorfilter_generator.dart' 
        - ('../../../../../Library/flutter/.pub-cache/hosted/pub.dartlang.org/colorfilter_generator-0.0.7/lib/colorfilter_generator.dart').
    
    opened by Gursewak-Uppal 4
  • widget height and width for smaller images

    widget height and width for smaller images

    you can fix this by commenting out height and width on sizebox in the package....the publisher can find the issue on line 506. once fixed all images will adjust to the sizedbox even when small.

    opened by ReggieMiller1 4
  • image_editor_plus depends on font_awesome_flutter ^9.0.0

    image_editor_plus depends on font_awesome_flutter ^9.0.0

    Hi friends,

    How can I solve this issue:

    Because every version of image_editor_plus depends on font_awesome_flutter ^9.0.0 and myProject depends on font_awesome_flutter ^10.1.0, image_editor_plus is forbidden.

    Thanks in advance!

    opened by RoyalCoder88 2
  • App crash on iOS

    App crash on iOS

    Xcode build done.                                           108.5s
    Installing and launching...
    (lldb) dyld[7502]: Symbol not found: _OBJC_CLASS_$_Reachability
      Referenced from: /private/var/containers/Bundle/Application/712DD2C5-3A2E-4FE1-9EA6-11052C59C96F/Runner.app/Frameworks/connectivity.framework/connectivity
      Expected in: /private/var/containers/Bundle/Application/712DD2C5-3A2E-4FE1-9EA6-11052C59C96F/Runner.app/Frameworks/Reachability.framework/Reachability
    * thread #1, stop reason = signal SIGABRT
        frame #0: 0x0000000103938578 dyld`__abort_with_payload + 8
    dyld`__abort_with_payload:
    ->  0x103938578 <+8>:  b.lo   0x103938598               ; <+40>
        0x10393857c <+12>: pacibsp 
        0x103938580 <+16>: stp    x29, x30, [sp, #-0x10]!
        0x103938584 <+20>: mov    x29, sp
    Target 0: (Runner) stopped.
    
    opened by Gursewak-Uppal 2
  • Fix saving of images

    Fix saving of images

    Currently there are transparent spaces on the top and bottom of the pictures if their height is smaller than the screen height. I think the problem is that it is taking a screenshot of the whole screen.

    Example: https://ibb.co/jrFsmMX https://ibb.co/5vWW2mT

    opened by Stefi16 2
  • Android build failed

    Android build failed

    Hi friends I updated the image_editor_plus from 0.1.3 to 0.1.4 and now my build failing with this error:

    `../../../Documents/flutter/.pub-cache/hosted/pub.dartlang.org/image_editor_plus-0.1.4/lib/image_editor_plus.dart:1519:18: Error: The method 'HandSignature' isn't defined for the class '_ImageEditorDrawingState'.

    • '_ImageEditorDrawingState' is from 'package:image_editor_plus/image_editor_plus.dart' ('../../../Documents/flutter/.pub-cache/hosted/pub.dartlang.org/image_editor_plus-0.1.4/lib/image_editor_plus.dart'). Try correcting the name to the name of an existing method, or defining a method named 'HandSignature'. child: HandSignature( ^^^^^^^^^^^^^`

    How can I solve this thanks in advance!

    opened by RoyalCoder88 1
  • Update the dependency of permission_handler to 10.0.0

    Update the dependency of permission_handler to 10.0.0

    Hi @hsbijarniya ,

    Please update the dependency of permission_handler to 10.0.0 (latest version) I get this build error:

    Because image_editor_plus 0.1.4 depends on permission_handler ^9.2.0 and no versions of image_editor_plus match >0.1.4 <0.2.0, image_editor_plus ^0.1.4 requires permission_handler ^9.2.0. So, because myapp depends on both image_editor_plus ^0.1.4 and permission_handler ^10.0.0, version solving failed.

    Thanks in advance!

    opened by RoyalCoder88 1
  • Setting appBarColor does not work in some pages

    Setting appBarColor does not work in some pages

    When I set the appBarColor to 'const Color(0xffffecb3)' and this is what I expect(pic0). pic0: https://ibb.co/qrjbMdW (BTW: There is an overflow occurs on the check button.)

    But in some pages, the colour of the top bar still remains black while some buttons are black too(pic1, pic2, pic3), so I can't figure out buttons from it. pic1: https://ibb.co/NZb2wBx pic2: https://ibb.co/FBFGTQZ pic3: https://ibb.co/6XgVvQw

    My code: ImageEditor(appBarColor: const Color(0xffffecb3), image: mergedImage)

    Thanks for your excellent work of this useful library. It really helps me a lot!

    opened by crablet 1
  • Extra space around the images

    Extra space around the images

    I am experiencing an issue where when I pick the image it has no extra (transparent) space around but when I am done editing it has transparent space around.

    Before editing: Before editing

    After editing After editing

    opened by zeeshanahmad0201 0
  • Add name of original author

    Add name of original author

    I discovered that probably you are not original author of whole code because I see a lot of similar code (and also mistakes) in the ImageEditorPro project. I don't know why but information about ImageEditorPro and author is missing here that's not right I think.

    In this PR I add information about it into README.

    opened by mjablecnik 0
  • Remove bug `Method 'map' cannot be called on 'List<XFile>?' because it is potentially null`

    Remove bug `Method 'map' cannot be called on 'List?' because it is potentially null`

    In Dart 2.18.0 I found this bug in the app build time.

    Bug:

    /C:/flutter/.pub-cache/hosted/pub.dartlang.org/image_editor_plus-0.1.8/lib/image_editor_plus.dart:165:42: Error: Method 'map' cannot be called on 'List<XFile>?' because it is potentially null.
     - 'List' is from 'dart:core'.
    - 'XFile' is from 'package:cross_file/src/types/io.dart' ('/C:/flutter/.pub-cache/hosted/pub.dartlang.org/cross_file-0.3.3+1/lib/src/types/io.dart').
    package:cross_file/…/types/io.dart:1
    Try calling using ?. instead.
                      images.addAll(selected.map((e) => ImageItem(e)).toList());
                                             ^^^
    3
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Script 'C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1159
    
    * What went wrong:
    Execution failed for task ':app:compileFlutterBuildSprodDebug'.
    > Process 'command 'C:\flutter\bin\flutter.bat'' finished with non-zero exit value 1
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 43s
    Exception: Gradle task assembleSprodDebug failed with exit code 1
    
    opened by lkrjangid1 0
  • Performance issue

    Performance issue

    The package is so slow when it comes to adding filters or cropping the image.

    When you click on crop or filters it takes 3 seconds minimum to push the page

    opened by RAII-DEVELOPMENT 1
  •  Type 'ImagePickerOptions' not found.

    Type 'ImagePickerOptions' not found.

    Error: Type 'ImagePickerOptions' not found. ../…/lib/image_picker_android.dart:174 ImagePickerOptions options = const ImagePickerOptions(), ^^^^^^^^^^^^^^^^^^ Error: Couldn't find constructor 'ImagePickerOptions'. ../…/lib/image_picker_android.dart:174 ImagePickerOptions options = const ImagePickerOptions(), ^^^^^^^^^^^^^^^^^^ Error: 'ImagePickerOptions' isn't a type. ../…/lib/image_picker_android.dart:174 ImagePickerOptions options = const ImagePickerOptions(), ^^^^^^^^^^^^^^^^^^

    opened by sivaprasadnk 0
  • Show loading indicator for bottom bar click events

    Show loading indicator for bottom bar click events

    When the user clicks on any bottom bar action button there is a few seconds delay before the route opens that particular widget.

    The issue appears in android version 12.

    opened by Mohammadhamza43 0
  • unwanted packages removed, buttons fixes, logic fixes, code optimization

    unwanted packages removed, buttons fixes, logic fixes, code optimization

    -nb_utils an outdated package was throwing issue for flutter 3.0 and above. -It was removed and custom code replacing the package work is implemented -Constant Colors are added to managed the colors easily
    -Bottom listview for edit button is changed with button for better tap/click reaction, previously using gesturedetector it was not that reactive. -Logical fixes

    opened by omjadhav3714 0
  • Brush annotations are transposed when navigating from the brush editor back to the image editor main screen.

    Brush annotations are transposed when navigating from the brush editor back to the image editor main screen.

    If you use the brush tool and draw a circle in the center of the image, the brush annotation will be transposed to the right when you confirm the action using the check button.

    The same is also true if you crop the image first and then use the brush tool. The size of the brush annotation is too large relative to the image.

    opened by mstich-mcmservices 1
Owner
null
An image editor with crop, scribble, mosaic, add-text, flip, rotated functions.

image_editor_dove A high-performance image editor with crop, scribble, mosaic, add-text, flip, rotated functions. Support custom ui style. drawing rot

null 27 Dec 16, 2022
a package for flutter canvas paint dash line path easily.

dash_painter a package for flutter canvas paint dash line path easily. 1. DashPainter 如何使用 DashPainter 只负责对 路径 Path 的虚线化绘制,不承担组件职能。 一般用在拥有 Canvas 对象的回

FlutterCandies 22 Oct 9, 2022
Flutter package for Image Carousel It is an image carousel widget.

Snapshot Carousel Flutter package for Image Carousel It is an image carousel widget. Supported platforms Flutter Android Flutter iOS Flutter web Flutt

Mrigank Anand 12 Jun 3, 2021
Instagram tool to download images, reels, videos and more.

Instagram tool to download images, reels, videos and more.

Yuji 34 Jan 2, 2023
Simple and effective cross platform image saver for flutter, supported web and desktop

Simple and effective cross platform image saver for flutter, supported web and desktop

7c00 3 Oct 5, 2022
Crop any widget/image in Android, iOS, Web and Desktop with fancy and customizable UI, in pure Dart code.

crop A Flutter package for cropping any widget, not only images. This package is entirely written in Dart and supports Android, iOS, Web and Desktop.

Mahdi 225 Jan 6, 2023
Loading indicator GIFs. Material and Cupertino (Android and iOS) loading indicators in assorted sizes. Use as placeholders for loading remote image assets. Demo: https://gallery.codelessly.com/flutterwebsites/loadinggifs/

Loading GIFs High quality Android and iOS loading spinners. View Demo Loading GIFs is a collection of high fidelity loading animations in GIF format.

Codelessly 31 Dec 23, 2022
Insipred by Font awesome Icons package 🤗 . This package contains more than 2000 icons 🥰

flutter_cmoon_icons ?? Insipred by Font awesome Icons package ?? . This package contains more than 2000 icons ?? . The amazing thing about this icons

Rexford Asamoah 3 Nov 3, 2021
A Flutter widget that paints an image and moves it at a slower speed than the main scrolling content.

A Flutter widget that paints an image and moves it at a slower speed than the main scrolling content. Installation Add dependency to your pubspec.yaml

Anatoly Pulyaevskiy 272 Dec 23, 2022
📸 Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget. Photo View is largely used to show interacive images and other stuff such as SVG.

Flutter Photo View A simple zoomable image/content widget for Flutter. PhotoView enables images to become able to zoom and pan with user gestures such

Fire Slime Games 1.7k Jan 3, 2023
Flutter plugin that allows you to display multi image picker on iOS and Android. 👌🔝🎉

IMPORTANT: This repository has been archived and no longer mantained. As I don't have time anymore to work on the package it became very outdated. For

Radoslav Vitanov 898 Apr 29, 2021
A simple and easy flutter demo to crop image

flutter_image_crop A simple demo to crop image on flutter easily. A Chinese version of this document can be found here Flutter_image_crop Plugin will

路小飞 3 Jul 8, 2021
A flutter carousel widget, support infinite scroll, and custom child widget.

carousel_slider A carousel slider widget. Features Infinite scroll Custom child widgets Auto play Supported platforms Flutter Android Flutter iOS Flut

serenader 1.4k Dec 30, 2022
A simple Flutter Package to Mimic iMessage Image Picker for Flutter

A simple Flutter Package to Mimic iMessage Image Picker for Flutter

Paras Jain 64 Dec 26, 2022
Image caching system for flutter

image_cacheing image_cacheing is an image caching package. It is currently tested for Android applications. ImageCacheing widget takes url as a param.

evolving_kid 3 May 31, 2021
A flutter tool to generate beautiful code snippets in the form of an image.

A flutter tool to generate beautiful code snippets in the form of an image.

Mahesh Jamdade 4 Jan 18, 2022
A flutter package to convert any widget to an Image.

Davinci A package to convert any widget to an image which can be saved locally or can be shared to other apps and chats. ?? Preview ℹ️ Usage Prerequis

Sai Gokula Krishnan 37 Dec 20, 2022
Flutter Image Upload From Gallery

Image Upload From Gallery Image upload from gallery to Backend Dependencies image_picker: ^0.8.4+1 http: ^0.13.3 dio: ^4.0.0 Getting Started Image upl

Fatih Baycu 2 Oct 6, 2021
Multi image pixker using the image_picker package in flutter

multi_image_selection A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you st

Ambaliya Avnit Karshanbhai 1 Oct 13, 2021