FLUTTER ECOSYSTEM

kekland/croppy

Um cortador de imagem totalmente personalizável para Flutter, no Flutter

Capa do projeto croppy
Stars
148
Forks
64
Último push (UTC)
21 de abr. de 2026
Status do projeto
Ativo
Erzhan GitHub avatar
GITHUB User

Erzhan ↗

i do some flutter things

Almaty, Kazakhstan
LinguagensDartC++CCMakeSwiftHTMLKotlinObjective-C

Tópicos técnicos

Pacotes publicados por este repositório

Dependências usadas

Lista de dependências 15 itens

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README

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.

https://github.com/kekland/croppy/raw/master/doc/assets/video.gif https://github.com/kekland/croppy/raw/master/doc/assets/image1.png https://github.com/kekland/croppy/raw/master/doc/assets/image2.png https://github.com/kekland/croppy/raw/master/doc/assets/image3.png

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