All Projects → Yalantis → Ucrop

Yalantis / Ucrop

Image Cropping Library for Android

Programming Languages

java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Ucrop

Igrphototweaks
Drag, Rotate, Scale and Crop
Stars: ✭ 212 (-98.07%)
Mutual labels:  scale, image, crop, rotation
Ddperspectivetransform
🔲 Warp image transformation
Stars: ✭ 186 (-98.31%)
Mutual labels:  image, crop, photo
Tkimageview
An easy way to crop an image.
Stars: ✭ 342 (-96.89%)
Mutual labels:  image, crop, photo
Cropiwa
📐 Configurable Custom Crop widget for Android
Stars: ✭ 2,185 (-80.14%)
Mutual labels:  image, crop, photo
Gimage
A PHP library for easy image handling. 🖼
Stars: ✭ 148 (-98.65%)
Mutual labels:  scale, image, crop
Lipo
👄 Free image manipulation API service built on top of Sharp (an alternative to Jimp, Graphics Magic, Image Magick, and PhantomJS)
Stars: ✭ 101 (-99.08%)
Mutual labels:  scale, image, crop
Rskimagecropper
An image cropper / photo cropper for iOS like in the Contacts app with support for landscape orientation.
Stars: ✭ 2,371 (-78.45%)
Mutual labels:  image, crop, photo
downscale
Better image downscale with canvas.
Stars: ✭ 80 (-99.27%)
Mutual labels:  scale, crop, photo
Flutter image cropper
A Flutter plugin for Android and iOS supports cropping images
Stars: ✭ 723 (-93.43%)
Mutual labels:  image, crop, photo
Rverify.js
✅❎ A lightweight image rotation verification plugin.
Stars: ✭ 33 (-99.7%)
Mutual labels:  image, rotation
Photobrowser
Elegant photo browser in Swift. 图片与视频浏览器。
Stars: ✭ 975 (-91.14%)
Mutual labels:  image, photo
Color.js
Extract colors from an image (0.75 KB) 🎨
Stars: ✭ 42 (-99.62%)
Mutual labels:  image, photo
Php Image Resize
PHP library to resize, scale and crop images. Cloud solution available at:
Stars: ✭ 955 (-91.32%)
Mutual labels:  scale, crop
Smartcircle
✂️Automatically determine where to crop a circular image out of a rectangular.
Stars: ✭ 29 (-99.74%)
Mutual labels:  image, crop
Kirby Autofocus
Content aware image cropping for Kirby. Kirby 2 and 3.
Stars: ✭ 35 (-99.68%)
Mutual labels:  image, crop
Instagrid Js
A Javascript library to do exactly what Instagram Layout application does
Stars: ✭ 13 (-99.88%)
Mutual labels:  image, crop
Imageviewer.swift
An easy to use Image Viewer that is inspired by Facebook
Stars: ✭ 1,071 (-90.27%)
Mutual labels:  image, photo
Mrthumb
【拇指先生】 a simple easy video thumbnail provider,顺滑的获取视频缩略图,支持本地和网络视频,有问题大胆提Issues
Stars: ✭ 60 (-99.45%)
Mutual labels:  image, photo
Cdpimagecrop
CDPImageCrop can zoom,move and crop a image and automatically save into the album,details see demo.
Stars: ✭ 6 (-99.95%)
Mutual labels:  image, crop
Extended image
A powerful official extension library of image, which support placeholder(loading)/ failed state, cache network, zoom pan image, photo view, slide out page, editor(crop,rotate,flip), paint custom etc.
Stars: ✭ 1,021 (-90.72%)
Mutual labels:  image, crop

uCrop - Image Cropping Library for Android

This project aims to provide an ultimate and flexible image cropping experience. Made in Yalantis

How We Created uCrop

Check this project on Dribbble

Usage

For a working implementation, please have a look at the Sample Project - sample

Get it on Google Play

  1. Include the library as local library project.

    allprojects {
       repositories {
          jcenter()
          maven { url "https://jitpack.io" }
       }
    }
    

    implementation 'com.github.yalantis:ucrop:2.2.6' - lightweight general solution

    implementation 'com.github.yalantis:ucrop:2.2.6-native' - get power of the native code to preserve image quality (+ about 1.5 MB to an apk size)

  2. Add UCropActivity into your AndroidManifest.xml

    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
    
  3. The uCrop configuration is created using the builder pattern.

    UCrop.of(sourceUri, destinationUri)
        .withAspectRatio(16, 9)
        .withMaxResultSize(maxWidth, maxHeight)
        .start(context);
  4. Override onActivityResult method and handle uCrop result.

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
            final Uri resultUri = UCrop.getOutput(data);
        } else if (resultCode == UCrop.RESULT_ERROR) {
            final Throwable cropError = UCrop.getError(data);
        }
    }
  5. You may want to add this to your PROGUARD config:

    -dontwarn com.yalantis.ucrop**
    -keep class com.yalantis.ucrop** { *; }
    -keep interface com.yalantis.ucrop** { *; }
    

Customization

If you want to let your users choose crop ratio dynamically, just do not call withAspectRatio(x, y).

uCrop builder class has method withOptions(UCrop.Options options) which extends library configurations.

Currently you can change:

  • image compression format (e.g. PNG, JPEG, WEBP), compression
  • image compression quality [0 - 100]. PNG which is lossless, will ignore the quality setting.
  • whether all gestures are enabled simultaneously
  • maximum size for Bitmap that is decoded from source Uri and used within crop view. If you want to override default behaviour.
  • toggle whether to show crop frame/guidelines
  • setup color/width/count of crop frame/rows/columns
  • choose whether you want rectangle or oval crop area
  • the UI colors (Toolbar, StatusBar, active widget state)
  • and more...

Compatibility

  • Library - Android ICS 4.0+ (API 14) (Android GINGERBREAD 2.3+ (API 10) for versions <= 1.3.2)
  • Sample - Android ICS 4.0+ (API 14)
  • CPU - armeabi armeabi-v7a x86 x86_64 arm64-v8a (for versions >= 2.1.2)

Changelog

Version: 2.2.5

Version: 2.2.4

  • AndroidX migration
  • Redesign
  • Several fixes including #550

Version: 2.2.3

  • Several fixes including #445, #465 and more!
  • Material design support
  • uCrop fragment as child fragment
  • Added Italian language

Version: 2.2.2

  • uCrop fragment added
  • bugfix

Version: 2.2.1

  • Fix including #285

Version: 2.2

Version: 2.1

  • Fixes issue with EXIF data (images taken on front camera with Samsung devices mostly) #130 #111
  • Added API to set custom set of aspect ratio options for user. #131
  • Added API to set all configs via UCrop.Options class. #126
  • Added ABI x86_64 support. #105

Version: 2.0

  • Native image crop (able to crop high-resolution images, e.g. 16MP & 32MP images on Nexus 5X).
  • WebP compression format is not supported at the moment (choose JPEG or PNG).
  • Now library copies EXIF data to cropped image (size and orientation are updated).

Version: 1.5

  • Introduced "Freestyle" crop (you can resize crop rectangle by dragging it corners) #32
  • Now image & crop view paddings are not associated #68
  • Updated API

Version: 1.4

  • Introduced http(s) Uri support!
  • Image is cropped in background thread.
  • Showing loader while Bitmap is processed (both loading and cropping).
  • Several bug fixes.
  • Couple new things to configure.
  • Updated minSdkVersion to Android ICS 4.0 (no reason to support couple percents of old phones).

Version: 1.3

  • Image is loaded in background thread. Better error-handling for image decoding.

  • Improved EXIF data support (rotation and mirror).

  • Small UI updates.

  • Couple new things to configure.

  • Sample updated with possibility to choose custom aspect ratio.

Version: 1.2

  • Updated core logic so an image corrects its position smoothly and obviously.

Version: 1.1

  • UCrop builder was updated and now UCrop.Options class has even more values to setup.

Version: 1.0

  • Initial Build

Let us know!

We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the library.

Apps using uCrop

License

Copyright 2017, Yalantis

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].