Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yasharpm/InstaCropper

A View for cropping images that is similar to Instagram's crop which allows a range of aspect ratios instead of a solid ratio. Also an Activity for cropping is included.
https://github.com/yasharpm/InstaCropper

Last synced: 3 months ago
JSON representation

A View for cropping images that is similar to Instagram's crop which allows a range of aspect ratios instead of a solid ratio. Also an Activity for cropping is included.

Awesome Lists containing this project

README

        

#### NOTICE: I build custom views "for free". Just send me a description of what you need and I will send it to you the next day! Email me at yasharpm[at]gmail[dot]com with the subject "CustomView request".

# InstaCropper
A View for cropping images that is similar to Instagram's crop. Also an Activity for cropping is included.

![alt tag](https://cloud.githubusercontent.com/assets/4597931/23830368/724ddf70-071e-11e7-9d7e-65615be8d5e6.gif)

## Usage

Add the dependency:
```Groovy
dependencies {
implementation 'com.yashoid:instacropper:1.2.0'
}
```

## How to use this library

Add `InstaCropperView` to your xml layout

```xml

```

InstaCropperView receives only Uri but any Uri is possible.
```java
mInstaCropper.setImageUri(imageUri);
```

You can specify three size ratios for the crop. The narrowest allowed, the widest allowed and the ideal ratio. The View will adjust its size by the ideal ratio.
```java
mInstaCropper.setRatios(defaultRatio, minimumRatio, maximumRatio);
```

The cropped image is returned in a callback. You can specify MeasureSpec to adjust the width and height of the returned Bitmap.
```java
mInstaCropper.crop(
View.MeasureSpec.makeMeasureSpec(1024, View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
new InstaCropperView.BitmapCallback() {

@Override
public void onBitmapReady(Bitmap bitmap) {
// Do something.
}

}
);
```

It is also possible to use the crop feature via an Intent call. There are various `getIntent()` methods defined on `InstaCropperActivity`. You will then receive the crop result in `data.getData()`.
```java
Intent intent = InstaCropperActivity.getIntent(context, srcUri, dstUri, maxWidth, outputQuality);
startActivityForResult(intent, REQUEST_CROP);
```

Cropping of multiple images is also possible. Use `MultipleCropActivity.getIntent()` methods to access. If all the images are cropped you will receive `RESULT_OK` otherwise `RESULT_CANCELED`. `EXTRA_COUNT` will contain the number of images cropped.
```java
Intent intent = MultipleCropActivity.getIntent(context, srcUris, dstUris, maxWidth, maxHeight, aspectRatio);
startActivityForResult(intent, REQUEST_MULTIPLE_CROP);
```

You can modify the crop Activity's apprearance by overriding the following resouce values:
```xml
Crop
Crop

@android:color/white
@android:color/black


```