Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at

  • Ollie Storey 13 posts 147 karma points
    Sep 02, 2019 @ 11:23
    Ollie Storey

    Get all Crops for an image?

    Is it possible to get all of the crops for an image from my generated Image model without passing in the alias(es)?

    I can see that there is a ImageCropperValue class in the Umbraco.Core namespace which has an IEnumerable<ImageCropperCrop> Crops. This would be perfect! But I cannot work out a way of turning my Image model into an ImageCropperValue?

    For context: I am building a headless implementation of Umbraco and we want to be able to add crops to the image cropper and have them automatically pull through into the API (front end) without requiring code changes to add the new alias to a list.


  • Shaishav Karnani from 345 posts 1621 karma points
    Sep 02, 2019 @ 13:03
    Shaishav Karnani from

    Hi Ollie,

    Below is the code that will help you to get dynamically Image Cropper Alias. You need to use Data Type Service and reference for GetByEditorAlias("Umbraco.ImageCropper") method. This will give you list of Image Cropper with their configuration details.

    Please review and let me know if you need any further help.

    using Umbraco.Core.PropertyEditors;
    using Umbraco.Core.Services;
    using Umbraco.Web;
    using Umbraco.Web.Models;
    namespace Training.Web.Umbraco.Domain.Controllers
        public class HomeController : SurfaceRenderMvcController
            private readonly IDataTypeService _dataTypeService;
            public HomeController(IUmbracoContextFactory context, IDataTypeService dataTypeService)
                _dataTypeService = dataTypeService;
            public ActionResult Home(ContentModel model)
                var dataType = _dataTypeService.GetByEditorAlias("Umbraco.ImageCropper");
                List<PreValue> toReturn = new List<PreValue>();
                if (dataType != null)
                    var valueList = (ImageCropperConfiguration)dataType.First().Configuration;
                    if (valueList != null && valueList.Crops != null && valueList.Crops.Any())
                        toReturn.AddRange(valueList.Crops.Select(s => new PreValue
                            Width = s.Width,
                            Value = s.Alias,
                            Height = s.Height
                // Ignore this code
                var newModel = ModelLogic.CreateMasterModel(model.Content) as MasterModel<Home>;
                return CurrentTemplate(newModel);
        public class PreValue
            public int Width { get; set; }
            public int Height { get; set; }
            public string Value { get; set; }



Please Sign in or register to post replies

Write your reply to: