New to Telerik UI for ASP.NET MVC? Download free 30-day trial

Adding a Rotating-Image Functionality to the ImageEditor

Environment

Product Telerik UI for ASP.NET MVC ImageEditor
Progress Telerik UI for ASP.NET MVC version Created with the 2022.2.621 version

Description

How can I add a functionality for rotating images in the Telerik UI for ASP.NET MVC ImageEditor?

Solution

To achieve the desired scenario:

  1. Add a custom button in the ToolBar of the ImageEditor that executes a custom command.
  2. When the command is triggered, execute custom logic to rotate the image.
        .Toolbar(toolbar => toolbar.Items(i =>
        {
            i.Add().Command("RotateImageRightImageEditorCommand").Type("button").Text("Rotate Image");

        }))         
    $(document).ready(function () {
        var imageEditor = $("#imageEditor").getKendoImageEditor();
        imageEditor.one("imageRendered", function () {
            imageEditor.executeCommand({ command: "ZoomImageEditorCommand", options: imageEditor.getZoomLevel() - 5.0 });
        });
    });


    var imageEditorNS = kendo.ui.imageeditor;
    imageEditorNS.commands.RotateImageRightImageEditorCommand = imageEditorNS.ImageEditorCommand.extend({
        exec: function () {
            var that = this,
                imageeditor = that.imageeditor,
                canvas = imageeditor.getCanvasElement(),
                ctx = imageeditor.getCurrent2dContext(),
                image = imageeditor.getCurrentImage();

            let degrees = 90; //rotate right

            canvas.width = image.height;
            canvas.height = image.width;

            ctx.clearRect(0, 0, canvas.width, canvas.height);
            ctx.translate(image.height / 2, image.width / 2);

            ctx.rotate(degrees * Math.PI / 180);
            ctx.drawImage(image, -image.width / 2, -image.height / 2);

            imageeditor.drawImage(canvas.toDataURL()).done(function (image) {
                imageeditor.drawCanvas(image);
            }).fail(function (ev) {
                imageeditor.trigger("error", ev);
            });
        }
    });

For the complete implementation of approach suggested above, refer to the following Telerik REPL.

More ASP.NET MVC ImageEditor Resources

See Also

In this article