Skip to content

Restore rotation and cropRect #589

@rbuiten

Description

@rbuiten

hello,

I am working on your beautiful library but I do have some challenges to reset the cropRect and rotation correctly. The use case is that user can select multiple images at once. Then our own activity is loaded and we added the image cropper view to it. And from each image they can update the rotation and change the crop. So, we are saving the cropRect we do receive at the setOnSetCropOverlayReleasedListener. After selecting the image (we use the setImageUriAsync for this), the cropRect function will be called within the setOnSetImageUriCompleteListener. After setting the cropRect we are rotating the image. This does work for landscape images, but with portrait images the cropRect isn't on the right place.

What should I do to restore the rotation and cropRect. I did try several things but it doesn't work to have it on the exact same place.

To have it more clear, here is the code

 binding.image.setOnSetCropOverlayReleasedListener { rect ->
            activatedImage?.let {
                if (enableCropListener && rect != null) {
                    presenter.onImageCropUpdated(it, rect)
                }
            }
        }
        binding.image.setOnSetImageUriCompleteListener { view, _, _ ->
            activatedImage?.let {
                enableCropListener = false

                binding.image.cropRect = it.croppedImage
                binding.image.rotateImage(it.degrees)

                enableCropListener = true
            }
        }

we do load the image with

binding.image.setImageUriAsync(it.originalUri.toUri())        

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions