Xamarin.ImageCropper
Xamarin.Forms plugin to crop and rotate photos.
Supports Android and iOS.
- Android library from : https://github.com/ArthurHub/Android-Image-Cropper
- iOS library from : https://github.com/TimOliver/TOCropViewController
Features
- Cropping image.
- Rotating image.
- Aspect ratio.
- Circle/Rectangle shape.
Screen-Shots
Android
iOS
Setup
- Install the nuget package in portable and all platform specific projects.
- This plugin uses the MediaPlugin. Be sure to complete the full setup this plugin. Please fully read through the MediaPlugin description.
Android
Add the following to your AndroidManifest.xml inside the tags:
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
android:theme="@style/Base.Theme.AppCompat"/>
In MainActivity.cs file:
Xamarin.ImageCropper.Droid.Platform.Init();
global::Xamarin.Forms.Forms.Init(this, bundle);
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
Xamarin.ImageCropper.Droid.Platform.OnActivityResult(requestCode, resultCode, data);
}
iOS
In AppDelegate.cs file:
Xamarin.ImageCropper.iOS.Platform.Init();
Usage
Show ImageCropper page.
new ImageCropper()
{
Success = (imageFile) =>
{
Device.BeginInvokeOnMainThread(() =>
{
imageView.Source = ImageSource.FromFile(imageFile);
});
}
}.Show(this);
Show it with additional parameters.
new ImageCropper()
{
PageTitle = "Test Title",
AspectRatioX = 1,
AspectRatioY = 1,
CropShape = ImageCropper.CropShapeType.Oval,
SelectSourceTitle = "Select source",
TakePhotoTitle = "Take Photo",
PhotoLibraryTitle = "Photo Library",
SelectedAction = ImageCropper.Current.TakePhotoTitle,
CancelButtonTitle = "Cancel",
Success = (imageFile) =>
{
Device.BeginInvokeOnMainThread(() =>
{
imageView.Source = ImageSource.FromFile(imageFile);
});
}
}.Show(this);
Show it with a image
new ImageCropper()
{
Success = (imageFile) =>
{
Device.BeginInvokeOnMainThread(() =>
{
imageView.Source = ImageSource.FromFile(imageFile);
});
}
}.Show(this, imageFileName);
Properties
- PageTitle
- AspectRatioX
- AspectRatioY
- CropShape
- SelectedAction
- Initial image can be set in Show function.
Contributions
Contributions are welcome!