Search categories, packages and repositories

croppy cover
Package detailsv1.5.3

croppy

A fully customizable image cropper for Flutter. Mobile-first, but supports Web and Desktop platforms.

Web
30-day downloads
9.7K
Likes
144
Pub points
150

Install package

flutter pub add croppy

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

Croppy is a fully customizable image cropper for Flutter, designed with a mobile-first approach while also supporting Web and Desktop platforms. It provides a seamless experience for cropping images with intuitive gestures and flexible configuration options. Built for developers who need fine-grained control over the cropping interface, Croppy enables customization of aspect ratios, crop boundaries, and UI elements. Its lightweight and responsive design ensures smooth performance across devices.

Use cases

  • Image editing in mobile apps
  • Web-based photo cropping tools
  • Desktop image processing workflows
  • Customizable user-facing crop interfaces
  • Integrating image cropping into media upload flows

Key features

  • Fully customizable crop area
  • Support for multiple platforms (Web, Mobile, Desktop)
  • Gesture-based cropping controls
  • Configurable aspect ratios
  • Responsive and adaptive UI
  • Extensible styling options

Suitable for

  • Developers building media-rich applications
  • Apps requiring advanced image manipulation
  • Cross-platform image cropping solutions
  • Teams prioritizing user experience in image editing
  • Projects needing lightweight, performant cropping components

Considerations

  • Requires additional setup for non-mobile platforms
  • Limited built-in presets for crop shapes
  • May need custom styling for brand-aligned UI
  • Not optimized for high-resolution image processing at scale
  • Dependent on platform-specific rendering behaviors

Original README

Original README snapshot from the linked source repository. Visit the repository 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

Categories

Dependencies

Dependency list 11 items

Source repository

Projects using this package

No data available yet.