image_cropper
A Flutter plugin for Android, iOS and Web supports cropping images
12.2.1
437K downloads/mo
#557 most downloaded on pub.dev
hnvn/flutter_image_cropper
What this package is like to depend on
Last release 4 months ago
15 Apr 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 59 of 59 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
63 releases · first in 2018
8 releases in the last 12 months
see the full history below
Release timeline
63 releases · Jun 2018 to Apr 2026Releases
latest 60 of 63-
12.2.115 Apr 2026 -
12.2.007 Apr 2026Release notes
Open source →- fix issue on iOS:
Lexical or Preprocessor Issue (Xcode): 'TOCropViewController/TOCropViewConstants.h' file not found
- fix issue on iOS:
-
12.1.129 Mar 2026 -
12.1.026 Mar 2026 -
12.0.022 Mar 2026Release notes
Open source →- iOS:
- upgrade
TOCropViewControllerto v3.1.1 (new Liquid Glass UI) - support
UISceneDelegate#608
- Android: fix Android release build compile error #599
-
11.0.025 Sep 2025Release notes
Open source →- iOS: upgrade
TOCropViewControllerto v2.8.0
BREAKING CHANGES:
- iOS: upgrade development target to 12
- Flutter constraint to minimum of 3.28 (due to constraint of
image_cropper_platform_interface)
- iOS: upgrade
-
10.0.017 Sep 2025Release notes
Open source →- Android: upgrade
uCrop2.2.11, it fully supports edge-to-edge now - Android:
statusBarColoris deprecated and no longer in use, introduce new propertiesstatusBarLightandnavBarLight
BREAKING CHANGES:
- Android:
compileSdkVersionis set to 36 - Android: if you previously followed the migration guide in v9.0.0 to work around the edge-to-edge issue, please revert those changes (remove file
values-v35/styles.xml)
- Android: upgrade
-
10.0.0+117 Sep 2025Release notes
Open source →- correct README document for Android (removed workaround note because uCrop now fully supports edge-to-edge feature)
-
9.1.002 Apr 2025 -
9.0.030 Jan 2025Release notes
Open source →- iOS: add support for Swift Package Manager (PR #555)
- Android: refactored edge-to-edge workaround solution by removing related code from the plugin and integrating it directly into the app.
Migration guide
- Add follwowing code to file
android/app/src/main/res/values/styles.xml
<resources> .... <style name="Ucrop.CropTheme" parent="Theme.AppCompat.Light.NoActionBar"/> <!--add this line--> </resources>- Create new file
android/app/src/main/res/values-v35/styles.xmland add the following code to it:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Ucrop.CropTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item> </style> </resources>- Modify the decleration of
UCropActivityin yourAndroidManifest.xml(if you have not modified it yet)
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Ucrop.CropTheme"/> <!--this line is updated--> -
8.1.017 Dec 2024Release notes
Open source →-
Android: workaround edge-to-adge issue on Android 15
Before:
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>After:
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Ucrop.CropTheme"/> <!-- This line is updated -->
-
-
8.0.216 Aug 2024Release notes
Open source →- Android: fix deprecated API
- web: correct constraints of flutter version (>=3.22.0)
-
8.0.131 Jul 2024 -
8.0.031 Jul 2024Release notes
Open source →- upgrade
webdependency - relax flutter version constraints
- iOS: Prefer presented view controller if preset to Root view controller
- iOS: introduce
iOSUiSettings.embedInNavigationControllerto support add2app environments
- upgrade
-
7.1.029 Jun 2024Release notes
Open source →- upgrade
platform_interfacedependency - increase Dart SDK constraints (
>=3.3.0) - Android: Removes references to Flutter v1 android embedding classes.
- upgrade
-
7.0.513 Jun 2024 -
7.0.408 Jun 2024 -
7.0.307 Jun 2024 -
7.0.207 Jun 2024Release notes
Open source →- Web:
- fix bug cropper not get correct container's size
- improve cropper UI
- correct document
- Web:
-
7.0.106 Jun 2024 -
7.0.006 Jun 2024Release notes
Open source →- refactor plugin to use new JS library,
cropperjsinstead ofcroppie - support Wasm
- support customize
CropAspectRatioPreset
BREAKING CHANGES:
- **WebUiSettings**: is totally re-implemented, please see plugin document for more details - **cropImage()**: move `cropStyle` and `aspectRatioPresets` into `AndroidUiSettings` and `IOUiSettings` for sake of clean and clarity. **Migration guides**: ***Before***: ``` File croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, cropStyle: CropStyle.circle, aspectRatioPresets: [ CropAspectRatioPreset.square, CropAspectRatioPreset.original, ], uiSettings: [ AndroidUiSettings( toolbarTitle: 'Cropper', ), IOSUiSettings( title: 'Cropper', ), ], ); ``` ***After***: ``` File croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, uiSettings: [ AndroidUiSettings( toolbarTitle: 'Cropper', cropStyle: CropStyle.circle, aspectRatioPresets: [ CropAspectRatioPreset.square, CropAspectRatioPreset.original, ], ), IOSUiSettings( title: 'Cropper', cropStyle: CropStyle.circle, aspectRatioPresets: [ CropAspectRatioPreset.square, CropAspectRatioPreset.original, ], ), ], ); ``` **Web integration**: ***Before***: ``` <head> .... <!-- Croppie --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/croppie/2.6.5/croppie.css" /> <script defer src="https://cdnjs.cloudflare.com/ajax/libs/exif-js/2.3.0/exif.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/croppie/2.6.5/croppie.min.js"></script> .... </head> ``` ***After***: ``` <head> .... <!-- cropperjs --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.2/cropper.min.js"></script> .... </head> ``` - refactor plugin to use new JS library,
-
6.0.029 Apr 2024Release notes
Open source →- Android: upgrade
uCropto v2.2.9 - iOS: upgrade
TOCropViewControllerto v2.7.3 - web: upgrade
jsto v0.7.1
- Android: upgrade
-
5.0.126 Nov 2023 -
5.0.010 Jun 2023 -
4.0.114 May 2023 -
4.0.014 May 2023 -
3.0.324 Apr 2023 -
3.0.224 Mar 2023 -
3.0.131 Oct 2022 -
3.0.009 Aug 2022Release notes
Open source →- BREAKING CHANGE: move all setting models to platform interface packages.
- Separate Javascript codes from
WebSettingsmodel (so there's no need to use conditional import to config Web UI now)
MIGRATION GUIDE
BEFORE
WebUiSettings( boundary: Boundary( width: 520, height: 520, ), viewPort: ViewPort(width: 480, height: 480, type: 'circle'), )AFTER
WebUiSettings( boundary: const CroppieBoundary( width: 520, height: 520, ), viewPort: const CroppieViewPort(width: 480, height: 480, type: 'circle'), ) -
2.0.317 May 2022 -
2.0.206 May 2022 -
2.0.105 May 2022 -
2.0.028 Apr 2022Release notes
Open source →- Support Web
BREAKING CHANGE:
- change result data type from
FiletoCroppedFile. - remove
androidUiSettingsandiosUiSettingsparameter incropImagemethod, they are replaced byuiSettings
MIGRATION GUIDE
BEFORE
File croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, androidUiSettings: AndroidUiSettings( toolbarTitle: 'Cropper', toolbarColor: Colors.deepOrange, toolbarWidgetColor: Colors.white, initAspectRatio: CropAspectRatioPreset.original, lockAspectRatio: false), iosUiSettings: IOSUiSettings( minimumAspectRatio: 1.0, ) );AFTER
CroppedFile croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, uiSettings: [ AndroidUiSettings( toolbarTitle: 'Cropper', toolbarColor: Colors.deepOrange, toolbarWidgetColor: Colors.white, initAspectRatio: CropAspectRatioPreset.original, lockAspectRatio: false), IOSUiSettings( title: 'Cropper', ) ], ); -
2.0.0-beta.301 Apr 2022 pre-release -
2.0.0-beta.227 Mar 2022 pre-release -
2.0.0-beta.127 Mar 2022 pre-releaseRelease notes
Open source →- BREAKING CHANGE: update result models to support web, replace
FilebyCroppedFile
- BREAKING CHANGE: update result models to support web, replace
-
2.0.0-beta19 Feb 2022 pre-releaseRelease notes
Open source →- migrate to federated plugins
- BREAKING CHANGE: remove
androidUiSettingsandiosUiSettings, they are replaced byuiSettingsfor sake of supporting multiple platforms in future.
MIGRATION GUIDE
BEFORE
File croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, androidUiSettings: AndroidUiSettings( toolbarTitle: 'Cropper', toolbarColor: Colors.deepOrange, toolbarWidgetColor: Colors.white, initAspectRatio: CropAspectRatioPreset.original, lockAspectRatio: false), iosUiSettings: IOSUiSettings( minimumAspectRatio: 1.0, ) );AFTER
File croppedFile = await ImageCropper().cropImage( sourcePath: imageFile.path, uiSettings: [ AndroidUiSettings( toolbarTitle: 'Cropper', toolbarColor: Colors.deepOrange, toolbarWidgetColor: Colors.white, initAspectRatio: CropAspectRatioPreset.original, lockAspectRatio: false), IOSUiSettings( title: 'Cropper', ) ], ); -
1.5.101 Apr 2022 -
1.5.019 Feb 2022 -
1.4.120 Jun 2021 -
1.4.007 Mar 2021 -
1.3.131 Aug 2020 -
1.3.009 Aug 2020 -
1.2.308 Jun 2020 -
1.2.212 May 2020Release notes
Open source →- Android: upgrade uCrop to v2.2.5
- BREAKING CHANGE: remove
activeWidgetColorfromAndroidUiSettings
-
1.2.101 Feb 2020Release notes
Open source →- iOS: add more UI customization properties (title, initRect)
- update Flutter version constraint (>= v1.12.13)
-
1.2.019 Jan 2020 -
1.1.218 Dec 2019 -
1.1.130 Nov 2019Release notes
Open source →- Android: upgrade gradle version
- iOS: remove
static_frameworkPod configuration, upgradeTOCropViewControllerto 2.5.2
-
1.1.029 Sep 2019Release notes
Open source →- BIG UPDATES: supports UI customization on both of Android and iOS, supports more image compress format and quality.
- BREAKING CHANGE:
ratioXandratioYare replaced byaspectRatio,circleShapeis replaced bycropStyle, removedtoolbarTitleandtoolbarColor(these properties are moved intoAndroidUiSettings) - iOS: upgrade native library (TOCropViewController v2.5.1)
- Android: upgrade native library (uCrop v2.2.4)
-
1.0.225 May 2019 -
1.0.115 Apr 2019 -
1.0.009 Feb 2019Release notes
Open source →- Android: remove deprecated support libraries
- Android: target version to 28
-
0.0.914 Nov 2018 -
0.0.812 Oct 2018 -
0.0.710 Oct 2018 -
0.0.629 Aug 2018 -
0.0.510 Aug 2018 -
0.0.406 Jul 2018