Flutter plugin for selecting images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/text/filters.

Overview

advance_image_picker

Flutter plugin for selecting multiple images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/filters.

This is an advanced version of image_picker plugin.

Key Features

  • Display live camera preview in a widget.
  • Adjust exposure
  • Zoom camera preview
  • Capture photo without saving into device library
  • Capture with preview size mode & full screen size mode
  • Select photos from device library by browsing photo albums
  • Preview selected images
  • Support button label & text translation
  • Easy image editing features, such as rotation, cropping, adding sticker/filters
  • Object detector & OCR (implement in future)

Apps using this package

freemar.vn - Shopping app for Vietnamese

Google Play App Store

trainghiem.vn - Find places to have fun, find places to experience!

Google Play App Store

Demo & Screenshots


Youtube Demo Link

Installation

iOS

Add these settings to the ios/Runner/Info.plist

<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App need your agree, can visit your album</string>

Android

Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21

Recommended add android:requestLegacyExternalStorage="true" to your AndroidManifest.xml, just like next.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="vn.weta.freemarimagepickerexample">

    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="freemarimagepicker_example"
        android:requestLegacyExternalStorage="true"
        android:icon="@mipmap/ic_launcher">
    </application>
</manifest>

Usages

Add to pubspec

dependencies:
  advance_image_picker: $latest_version

Import dart code

import 'package:advance_image_picker/advance_image_picker.dart';

Setting configs & text translate function

// Setup image picker configs (global settings for app)
var configs = ImagePickerConfigs();
configs.appBarTextColor = Colors.black;
configs.stickerFeatureEnabled = false; // ON/OFF features
configs.translateFunc = (name, value) => Intl.message(value, name: name); // Use intl function

Sample for usage

// Get max 5 images
List<ImageObject> objects =
    await Navigator.of(context).push(
        PageRouteBuilder(pageBuilder:
            (context, animation, __) {
  return ImagePicker(maxCount: 5);
}));

if (objects.length > 0) {
  setState(() {
    imageFiles.addAll(objects
        .map((e) => e.modifiedPath)
        .toList());
  });
}

Credits

This software uses the following open source packages:

  • camera
  • photo_manager
  • image_cropper
  • photo_view
  • flutter_native_image
  • image_editor
  • matrix_gesture_detector
  • path_provider
  • image
  • intl

Support

If this plugin was useful to you, helped you to deliver your app, saved you a lot of time, or you just want to support the project, I would be very grateful if you buy me a cup of coffee.

Buy Me A Coffee

Issues
  • How work the translation?

    How work the translation?

    Can u explain me here?

    Text(?????);

    opened by federico2390 2
  • Black background for edited image

    Black background for edited image

    _20211013_000550 _20211013_000609 When I select an image without a background, it appears without a background, but when I edit it, such as cropping or adjusting brightness, it appears with a black background as shown in the image. How can i fix that???

    opened by OmarHalabii 0
  • Issue : Denying the authorisation leads to a black screen forever

    Issue : Denying the authorisation leads to a black screen forever

    Hi !

    Some of our users have been reporting an unclear situation : when they deny the camera or the gallery picker, they're faced against a black screen content, making the information unclear. Either asking again for the authorization or display the information clearly would fix this, no idea if this is planned or possible through a way.

    Thanks !

    bug done 
    opened by VuillaumeGautier 4
  • (Question): Circular Image crop

    (Question): Circular Image crop

    Hi,

    I was wondering if it will be possible to have a circular cropping area instead of the normal squarish one?

    Thanks in advance

    Crop

    opened by matthewmizzi 2
  • NEW FEATURE: Platform aware confirmation dialogs

    NEW FEATURE: Platform aware confirmation dialogs

    Currently advance_image_picker always uses Material style confirmation dialogs. This is not ideal for iPhone/iPad users, since iOS users feel more at home when dialogs use native looking confirmation dialog style.

    Add a new feature that by default uses:

    • Cupertino style confirmation dialogs on iOS and macOS.
    • Material style confirmation dialogs on all other platforms.

    A configuration option would be provided that offers:

    • dialogStyle: DialogStyle.platform - Platform adaptive. This would be the new default style! Minor style break with past versions!
    • dialogStyle: DialogStyle.materail - Material style. Currently this is always used and the only choice.
    • dialogStyle: DialogStyle.cupertino - Cupertino/iOS style.

    This issue is summitted so it can be marked in this issue when it is being worked on. I might work on it myself later.

    opened by rydmike 0
  • NEW FEATURE: Alternative locations for the DONE button.

    NEW FEATURE: Alternative locations for the DONE button.

    Make it possible to use alternative placement for the DONE button in the advance_image_picker

    In addition to AppBar end location it could support:

    • Bottom left/start.
    • Bottom right/end.

    The feature would make quick one handed usage of the camera in portrait possible, just snap pics and send them away without reaching for the top of the phone, that is very far away on tall modern phones.

    This feature can be added without breaking past configuration that would remain as default.


    This issue is summitted so it can be marked in this issue when it is being worked on. I might work on it myself later.

    opened by rydmike 0
  • NEW FEATURE: Support taking photos in landscape mode

    NEW FEATURE: Support taking photos in landscape mode

    Currently advance_image_picker does not support taking pictures in landscape mode that would be automatically rotated as such after taking the pic. The UI can also not respond correctly to landscape mode.


    This issue is summitted so it can be marked in this issue when it is being worked on. I might work on it myself later.

    opened by rydmike 0
  • Issue : using the image picker resets the phone orientation allowed

    Issue : using the image picker resets the phone orientation allowed

    Hi ! We've found a small issue while using the picker. Our app is locked in portrait mode, but after using this library and leaving it, the app allows all 4 modes without any restriction. Is this a normal behavior (allowing picker phone modes will overwrite the app modes) and should we implement a local workaround ? Thanks

    opened by VuillaumeGautier 3
  • Bug : picture edited on iOS localy not seen edited in the picker !

    Bug : picture edited on iOS localy not seen edited in the picker !

    Hello again !

    We found a bug while using the app : on iOS, when you edit a picture in the iOS image editor, the picture is seen croped etc. in the iOS gallery, but not in the image_picker gallery.

    Tell me f you need more info for the troubleshooting.

    Thanks again for the lib and your time !

    opened by VuillaumeGautier 5
  • Video

    Video

    Any plans to support video picking and editing?

    Thanks

    opened by sdegenaar 1
Releases(v1.1.5+5)
  • v1.1.5+5(Oct 16, 2021)

    [0.1.5+5]

    • Fixbugs:
      • Check permission for camera & photo gallery
      • Fixbug about OCR text editting

    [0.1.5+1]

    • New features:
      • Add custom stickers (by @matthewmizzi suggestion)

    [0.1.5]

    • New features:
      • Object detection & OCR extraction interface for image

    [0.1.4]d

    • New ImagePickerConfigs features:

      • Camera flash mode flashMode, the starting flash mode for the camera can be set to other values than FlashMode.auto. The default is FlashMode.auto as in previous version where it could not be modified.
      • Option to remove the flash mode toggle button. If you do not want to allow users to change the flash mode, you can set showFlashMode to false. It defaults to true. If showFlashMode is false, the flash mode will use what is set by flashMode, since user cannot toggle it.
      • Config option to show and hide the lens direction icon button. If you want to show only one camera, you may also want to hide the button than enables users switch camera. You can then set showLensDirection to false. If you show just one cameraLensDirection and showLensDirection is true, then the lens direction button is still shown, but disabled as in previous versions.
      • Only add the text line for textSelectedImagesGuide if it is not empty. If no drag reorder guidance label is specified in translation by returning empty string '' for textSelectedImagesGuide, then the extra line that holds the text will also be removed, resulting in more camera view space.
      • For label textSelectedImagesTitle only show it, the colon and space after it, if it is not empty. If you return a translated string that is empty '', you can get only the selected "image / max" count shown, with no label and colon.
      • Use an IconButton as done button, instead of the default OutlinedButton. Set doneButtonStyle to [DoneButtonStyle.iconButton] for this option. Defaults to DoneButtonStyle.outlinedButton, that is the same as only option in previous versions. You can also change the button icon by defining custom IconData for the doneButtonIcon.
      • Hide done action button when no images have been selected. This is optional new behavior that can be used instead of default, that disables it. Select the style with doneButtonDisabledBehavior.
      • Optional alert when removing selected images. If you set showRemoveImageAlert to false, there is no alert dialog to confirm the remove/delete of an image, when user clicks on the delete icon to remove photos and images from the list of images to be used, they are just removed immediately. Defaults to true, showing the alert dialog, which is same behavior as in previous version.
    • Update all dependencies to their latest versions, most notably image_editor to version 1.0.1 that now uses Android embedding V2.

    • Clean up remaining lint warnings.

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Sep 5, 2021)

  • v.0.1.1(Sep 3, 2021)

  • v0.1.0(Aug 27, 2021)

    • Rewrite image sticker feature
    • Update camera plugin to v0.9.1
    • Improve UI customization

    https://pub.dev/packages/advance_image_picker/changelog

    Source code(tar.gz)
    Source code(zip)
Owner
Weta Vietnam
WetaVN Build smart apps for everyone!
Weta Vietnam
Download files from Firebase Storage with Flutter. List all images, videos, or other files from Firebase and download them.

Flutter Tutorial - Download Files From Firebase Storage Download files from Firebase Storage with Flutter. List all images, videos, or other files fro

Johannes Milke 18 Jan 10, 2022
Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your device and upload them to Firebase.

Flutter Tutorial - Upload Files To Firebase Storage Upload Files To Firebase Storage with Flutter. Pick images, videos, or other files from your devic

Johannes Milke 22 Jan 10, 2022
Sticker chat is a messaging application built using Flutter, Stream, and Rive

Sticker Chat ?? Sticker chat is a messaging application built using Flutter, Stream, and Rive. It allows users to send and receive messages in real-ti

Neevash Ramdial (Nash) 41 Jan 1, 2022
Create a Flutter User Profile Page UI where you can access and edit your user's information within your Flutter app.

Flutter Tutorial - User Profile Page UI 1/2 Create a Flutter User Profile Page UI where you can access and edit your user's information within your Fl

Johannes Milke 24 Jan 19, 2022
Create a Flutter User Profile Page UI where you can access and edit your user's information within your Flutter app.

Flutter Tutorial - User Profile Page UI #2 Create a Flutter User Profile Page UI where you can access and edit your user's information within your Flu

Johannes Milke 15 Dec 20, 2021
Trying out Flutter for desktop Web app development as an alternative to SPA frameworks (such as React and Angular) by recreating one of the pages of an existing CV Management web app

HTML Renderer Demo CanvasKit Renderer Demo Reddit discussion This repo contains a PoC of using Flutter as a traditional SPA framework for creating a d

Maxim Saplin 13 Dec 26, 2021
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Swarup Bhanja Chowdhury 15 Dec 18, 2021
A new Flutter application.

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

Mahmoud Hesham 14 Nov 15, 2021
It's a universal app template to have a great animated splash screen and liquid slider. Just change the animation if you want (rive) and change the images or colours according to your app.

liquid A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Zikyan Rasheed 26 Oct 28, 2021
Docker images for the Dart programming language (https://dart.dev)

dart-docker This is the Git repo of the Docker "Official Images" for the Dart programming language. See the Docker Hub page for a full description on

Dart 34 Jan 16, 2022
Persist data with Flutter's Hive NoSQL Database locally on Android, iOS & Web.

Flutter Tutorial - Hive NoSQL Database Persist data with Flutter's Hive NoSQL Database locally on Android, iOS & Web. ✌  Preview App Preview Course Pr

Johannes Milke 34 Jan 7, 2022
A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter

Klutter A streaming client for the Komga self-hosted comics/manga/BD server targeting Android/iOS written in Dart/Flutter Background This is a project

Mark Winckle 27 Dec 27, 2021
An E-Commerce application developed on Flutter, which helps to run the app on Android / IOS / Windows's OS / MacOS / Web Browser from a single codebase

BuySmart An E-Commerce application developed on Flutter, which helps to run the app on Android / IOS / Windows's OS / MacOS / Web Browser from a singl

Sumit Kumar 8 Nov 15, 2021
A News App in Flutter using the newsapi.org API and using Bloc.

flutter_newsapp A News App using API from newsapi.org and using Bloc. Working ⚡ Screenshots =>=> ⚡ video Before Running Replace the <API_KEY> in lib/r

Arunoday kumar 10 Nov 27, 2021
App HTTP Client is a wrapper around the HTTP library Dio to make network requests and error handling simpler, more predictable, and less verbose.

App HTTP Client App HTTP Client is a wrapper around the HTTP library Dio to make network requests and error handling simpler, more predictable, and le

Joanna May 29 Dec 20, 2021
无第三方依赖的公历(阳历)和农历(阴历、老黄历)工具,支持节假日、星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋凶煞宜忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道黑道日及吉凶等。lunar is a calendar library for Solar and Chinese Lunar.

lunar lunar是一款无第三方依赖的公历(阳历)和农历(阴历、老黄历)工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶、法定节假日及调休等。 Eng

6tail 22 Jan 12, 2022
Dart client library to interact with Supabase Storage

storage-dart Dart client library to interact with Supabase Storage. Contributing Fork the repo on GitHub Clone the project to your own machine Commit

Supabase 17 Jan 15, 2022
Socket library for creating real-time multiplayer games. Based on TCP, with the ability to send messages over UDP (planned).

Game socket The library was published in early access and is not stable, as it is being developed in parallel with other solutions. English is not a n

Stanislav 6 Dec 11, 2021
AI Library to create efficient Artificial Neural Networks. Computation uses SIMD (Single Instruction Multiple Data) to improve performance.

eneural_net eNeural.net / Dart is an AI Library for efficient Artificial Neural Networks. The library is portable (native, JS/Web, Flutter) and the co

null 17 Dec 22, 2021