Xamarin.Controls.ImageCropper
1.2.1
See the version list below for details.
dotnet add package Xamarin.Controls.ImageCropper --version 1.2.1
NuGet\Install-Package Xamarin.Controls.ImageCropper -Version 1.2.1
<PackageReference Include="Xamarin.Controls.ImageCropper" Version="1.2.1" />
paket add Xamarin.Controls.ImageCropper --version 1.2.1
#r "nuget: Xamarin.Controls.ImageCropper, 1.2.1"
// Install Xamarin.Controls.ImageCropper as a Cake Addin #addin nuget:?package=Xamarin.Controls.ImageCropper&version=1.2.1 // Install Xamarin.Controls.ImageCropper as a Cake Tool #tool nuget:?package=Xamarin.Controls.ImageCropper&version=1.2.1
MAUI / Xamarin ImageCropper
Simple crossplatform MAUI / Xamarin image cropper, you can use it in Xamarin.Forms, Xamarin native and MAUI. Also compatible with .NET 7
Supported platforms | Nuget | Android | iOS | Windows | MacCatalyst |
---|---|---|---|---|---|
MAUI | ✅ | ✅ | ✖️ | ✖️ | |
Xamarin | ✅ | ✅ | ✖️ | ✖️ | |
.NET | ✅ | ✅ | ✖️ | ✖️ |
Powered By:
- Mono Android - uses ArturHub's Android-Image-Cropper
- .NET / MAUI Android - uses CanHub's Android-Image-Cropper
- iOS - uses uses Tim Oliver's TOCropViewController
Another platforms:
Currently Windows and MacCatalyst are not supported, but your PRs are welcome
Mono setup:
Android:
It uses Plugin.CurrentActivity under the hood, so don't forget to initialize it in your MainActivity.cs's OnCreate method:
Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle);
Also, you need to add OnActivityResult handler:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent)
{
base.OnActivityResult(requestCode, resultCode, intent);
Plugin.Maui.ImageCropper.Platform.Droid.OnActivityResult(requestCode, resultCode, intent);
}
Don't forget to add this row into your AndroidManifest.xml file application tag:
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity" android:theme="@style/Base.Theme.AppCompat" />
iOS:
No extra actions required
.NET setup:
Android:
All you need is to initialize it in your MainActivity.cs's OnCreate method:
Plugin.Maui.ImageCropper.Platform.Droid.Init(this);
Don't forget to add this row into your AndroidManifest.xml file application tag:
<activity android:name="com.canhub.cropper.CropImageActivity" android:theme="@style/Base.Theme.AppCompat" />
iOS:
No extra actions required
MAUI setup:
To use it in MAUI you should call UseImageCropper()
method from Plugin.Maui.ImageCropper
namespace.
Also there is another overload which allows you to register ImageCropper instance in services and then use it with DI
UseImageCropper(registerInterface: true)
Android:
Don't forget to add this row into your AndroidManifest.xml file application tag:
<activity android:name="com.canhub.cropper.CropImageActivity" android:theme="@style/Base.Theme.AppCompat" />
iOS:
No extra actions required
Example of usage:
Note: in MAUI use Cropper
class instead of ImageCropper
await ImageCropper.Current.Crop(new CropSettings()
{
AspectRatioX = 1,
AspectRatioY = 1,
CropShape = CropSettings.CropShapeType.Rectangle
}, imageFilePath).ContinueWith(t =>
{
if (t.IsFaulted)
{
var ex = t.Exception;
//alert user
}
else if (t.IsCanceled)
{
//do nothing
}
else if (t.IsCompletedSuccessfully)
{
var result = t.Result;
//do smth with result
}
});
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-android34.0 is compatible. net8.0-browser was computed. net8.0-ios was computed. net8.0-ios17.2 is compatible. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
-
net8.0-android34.0
- Com.Vanniktech.AndroidImageCropper.Maui (>= 4.4.0)
-
net8.0-ios17.2
- TimOliver.TOCropViewController.Maui (>= 2.3.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.