Cropify

Project Url: MoyuruAizawa/Cropify
Introduction: Image Cropper for Android Jetpack Compose.
More: Author   ReportBugs   
Tags:

JitPack Vital
Lightweight image cropper for Android Jetpack Compose.

https://user-images.githubusercontent.com/9051623/231838736-8bff221e-8515-4dd4-8314-64c3166e700d.mov

The AI-generated Wiki is here.

Installation

  1. Add the JitPack repository to settings.gradle.kts.
dependencyResolutionManagement {
    ...
    repositories {        
        ...
        maven("https://jitpack.io")
    }
}
  1. Add the dependency.
dependencies {
  implementation("com.github.moyuruaizawa:cropify:${cropifyVersion}")
}

Usage

Bitmap

val state = rememberCropifyState()

Cropify(
  bitmap = imageResource(R.drawable.bitmap),
  state = state,
  onImageCropped = {},
  option = CropifyOption(
    frameSize = FullSize
  ),
)

Uri

val state = rememberCropifyState()

Cropify(
  uri = imageUri,
  state = state,
  onImageCropped = {},
  onFailedToLoadImage = {},
  option = CropifyOption(
    frameSize = FullSize
  ),
)

Invoke CropifyState#crop, the cropped image will be passed to onImageCropped. If loading an image from Uri fails, onFailedToLoadImage will be called.

Features

  • Cropping.
  • set Bitmap or load android.net.Uri.
  • Bitmap memory optimization.
  • API Level 21+.

Customizations

  • Cropping frame color.
  • Cropping frame alpha.
  • Cropping frame stroke width.
  • Cropping frame aspect ratio.
  • Grid line color.
  • Grid line alpha.
  • Grid line stroke width.
  • Mask (outside of cropping frame) color.
  • Mask alpha.
  • Background color.

Acknowledgement

I would like to thank ArthurHub/Android-Image-Cropper.
Cropify aims to a Jetpack Compose implementation of ArthurHub/Android-Image-Cropper.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools