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

You might also like...

A full-fledged camera app built with Flutter using the camera package.

A full-fledged camera app built with Flutter using the camera package.

Flutter Camera Demo A full-fledged camera app built with Flutter using the camera package. You can even add custom features to this app and customize

Nov 23, 2022

A note-taking app powered by Google services such as Google Sign In, Google Drive, and Firebase ML Vision.

A note-taking app powered by Google services such as Google Sign In, Google Drive, and Firebase ML Vision.

Smart Notes A note-taking app powered by Google services such as Google Sign In, Google Drive, and Firebase ML Vision. This is an official entry to Fl

Oct 26, 2022

Flutter simple image crop - A simple and easy to use flutter plugin to crop image on iOS and Android

Flutter simple image crop - A simple and easy to use flutter plugin to crop image on iOS and Android

Image Zoom and Cropping plugin for Flutter A simple and easy used flutter plugin to crop image on iOS and Android. Installation Add simple_image_crop

Dec 14, 2021

DiceBear API wrapper. DiceBear is an avatar library for designers and developers. Generate random avatar profile pictures!

dice_bear Flutter Package DiceBear API wrapper. DiceBear is an avatar library for designers and developers. Generate random avatar profile pictures! C

Oct 31, 2022

Face Mask Detection mobile application built with Flutter and TensorFlow lite in order to detect face masks using images and live camera.

Face Mask Detection mobile application built with Flutter and TensorFlow lite in order to detect face masks using images and live camera.

Face Mask Detector App Face Mask Detection mobile application built with Flutter and TensorFlow lite in order to detect face masks using images and li

Aug 15, 2022

A powerful plugin that fully uses the native image library's ability to display images on the flutter side.

PowerImage A powerful plugin that fully uses the native image library's ability to display images on the flutter side. 中文文档 Features: Supports the abi

Dec 23, 2022

Sticker chat is a messaging application built using Flutter, Stream, and Rive

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

Nov 23, 2022

An app to pick, upload and display images from camera and gallery with size and extension constraints.

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

Mar 7, 2022

Masked text field - A flutter package for masked text field for formet your text and good UI

Masked text field - A flutter package for masked text field for formet your text and good UI

Masked Text Field Masked Text Field Features A package for masked text field for

Sep 4, 2022
Comments
  • Ios Gallery Album Pick RangeError

    Ios Gallery Album Pick RangeError

    I get a "RangeError (index): Invalid value: Valid value range is empty: 0" error when selecting different album. This only happens on IOS, I didn't have a problem on android.

    DIY: Open the gallery to select a picture. Click Recents to look at other albums from the top and I get rangeError error.

    Any error does not appear in the console.

    I think the problem is (await a.getAssetListRange(start: 0, end: 1)) .first .thumbnailDataWithSize)

    This is related to the code block because in android it doesn't come empty while in ios some of them come empty.

    IOS VER: 14.4 FLUTTER VER: 3

    opened by seceba 0
  • Example code not working for camera position

    Example code not working for camera position

    Environment Mac M1, Flutter 3.0 IOS version target 15

    In info.plist NSCameraUsageDescription is included

    When opening dialog for selecting picture from camera, the request permission screen is shown. Clicking on button leads to an error message. No Dialog opens for confirming camera usage.

    Error message The following _CastError was thrown while handling a gesture: Null check operator used on a null value

    When the exception was thrown, this was the stack: #0 _ImagePickerState._initCameraController (package:advance_image_picker/widgets/picker/image_picker.dart:281:41)

    Line 281: final cameraController = _controller!;

    opened by tbecker 0
  • 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
  • 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
Releases(v1.1.5+5)
  • v1.1.5+5(Oct 17, 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
Image editing using Paints, Text, Filters, Emoji and Sticker like stories, Built With Flutter

ImageEditorPro Image Editor Plugin with simple, easy support for image editing u

Kaushikkumar Godhani 4 Nov 13, 2022
A Flutter package which provides 360 view of the images with rotation and gesture customisations.

imageview360 A Flutter package which provides 360 view of the images with rotation and gesture customisations. Supported Dart Versions Dart SDK versio

hd-motion 104 Dec 1, 2022
Flutterbodydetection - A flutter plugin that uses MLKit on iOS/Android platforms to enable body pose and mask detection using Pose Detection and Selfie Segmentation APIs for both static images and live camera stream.

body_detection A flutter plugin that uses MLKit on iOS/Android platforms to enable body pose and mask detection using Pose Detection and Selfie Segmen

null 18 Dec 5, 2022
Taking many pictures and photos list in the same page

Custom Camera Preview A component has developed with Flutter Purpose Instead of taking photos of a product and taking them one by one when users need

Okan 9 Oct 28, 2022
Flutter plugin, support android/ios.Support crop, flip, rotate, color martix, mix image, add text. merge multi images.

image_editor The version of readme pub and github may be inconsistent, please refer to github. Use native(objc,kotlin) code to handle image data, it i

FlutterCandies 317 Jan 3, 2023
Automatically generate profile picture with random first name and background color. But you can still provide pictures if you have them. As the default color, based on the name of the first letter. :fire: :fire: :fire:

FLUTTER PROFILE PICTURE Automatically generate profile picture with random first name and background color. But you can still provide pictures if you

Aditya Dharmawan Saputra 10 Dec 20, 2022
Flutter image filters plugin

filter A flutter plugin project to apply images filters to file image natively and efficiently. WARNING!! Implemented in Android PR are welcomed for I

Patrick waweru 7 May 28, 2021
Picture upload widget for Flutter which helps selecting and uploading one or multiple images to firebase storage.

Flutter Firebase Picture Uploader This library offers a Picture Upload widget which can be used to upload one or multiple images to your Firebase Stor

Christoph Rothermel 12 Oct 21, 2022
In this repo you will see how to pick images from the image library and also, see how to store the selected images on Firebase.

flutterimageapp Flutter Tutorial - Upload Images using Firebase Storage. Flutter Tutorial - Upload Images using Firebase Storage Video series can be w

Whatsupcoders 60 Nov 4, 2022
Flutter Package used to 'edit' basics aspects [Brightness, Contrast, Saturation, etc...] from a widget or image.

on_image_matrix on_image_matrix is a Flutter Package used to 'edit' basics aspects [Brightness, Contrast, Saturation, etc...] from a widget or image.

Lucas Josino 6 Oct 23, 2022