Search packages, repositories and app categories

GitHub repositorykekland/croppy

croppy

A fully customizable image cropper for Flutter, in Flutter

croppy project cover
Stars
148
Forks
64
Last push (UTC)
Apr 21, 2026
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Cover image

croppy

Pub Version

A fully customizable image cropper for Flutter, with built-in Material and Cupertino croppers.

Check out the example at https://kekland.github.io/croppy.

Supported platforms:

  • Android
  • iOS
  • Windows
  • Linux (untested, but should work)
  • macOS
  • Web (uses Dart's Cassowary instead of FFI because there's no FFI support in web)

NOTE: see https://github.com/kekland/croppy/issues/38. Currently I'm very busy with other projects so support might be limited.

Features

  • Material image cropper (similar to Google Photos)
  • iOS Photos app-like image cropper
  • Support for any linear transformations on the image: scaling, rotating, skewing, flipping, etc
  • Completely customizable (will create documentation with later releases)
  • Fixed aspect ratios
  • Custom cropping shapes
  • Kickass animations
  • Localization

In progress:

  • Image editing module (?) (brightness, contrast, etc)

Getting started

Install croppy from pub:

dependencies:
  croppy: <latest_version>

Enjoy using it :)

Usage

Currently croppy supports a Material (Google Photos-like) and a Cupertino (iOS Photos-like) image croppers:

final result = await showAdaptiveImageCropper(
    context,
    imageProvider: const NetworkImage('MY_IMAGE_URL'), // Or any other image provider
);

final result = await showMaterialImageCropper(
  context,
  imageProvider: const NetworkImage('MY_IMAGE_URL'), // Or any other image provider
);

final result = await showCupertinoImageCropper(
  context,
  imageProvider: const NetworkImage('MY_IMAGE_URL'), // Or any other image provider
);

Voilà! You can now start cropping images.

For a complete runnable example, see ./example. For the full in-depth documentation, including customization, see the documentation.

Localization

croppy currently supports the following languages:

  • English
  • Kazakh
  • Russian
  • Arabic (thanks @Milad-Akarie)
  • Vietnamese (thanks @ptanhVNU)
  • Portuguese (thanks @JCKodel)
  • Spanish (thanks @Thesergiolg99)
  • Chinese (thanks @yohom and @zhushenwudi)
  • Hebrew (thanks @kfiross)
  • German (thanks @jkoenig134)
  • Persian (thanks @mdpe-ir)
  • Turkish (thanks @BayramYARIM)
  • Polish (thanks @mekkolodziejski)
  • Romanian (thanks @AdrianSima)
  • Kyrgyz (thanks @warioddly)

If there's a language that you would like to add, please see the localization guide.

It's recommended to insert the CroppyLocalizations.delegate in your MaterialApp or CupertinoApp:

MaterialApp(
  localizationsDelegates: [
    CroppyLocalizations.delegate, // <- This here
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  ...
)

Additional information

Feel free to report bugs/issues on GitHub.

If you have questions, you can contact me directly at kk.erzhan@gmail.com.

Credits:

  • https://github.com/daniyarzt for the FitAabbInQuadSolver class
Erzhan GitHub avatar
GitHub author

Erzhan ↗

i do some flutter things

Almaty, Kazakhstan
LanguagesDartC++CCMakeSwiftHTMLKotlinObjective-C

Categories

Packages published by this repository

Dependencies used

Dependency list 15 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗