CanHub / Android-Image-Cropper

Image Cropping Library for Android, optimised for Camera / Gallery.
Apache License 2.0
1.26k stars 260 forks source link

Restore rotation and cropRect #589

Open rbuiten opened 1 year ago

rbuiten commented 1 year ago

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())        
vanniktech commented 1 year ago

Might be a limitation that we don't support this.

kenslee-studio commented 1 year ago

@rbuiten @vanniktech Looking closely to the rect values , I have found that it is giving wrong values for photo in portrait mode. Might be some problem with the code

sandeepyohans commented 4 months ago

Hi team, any update on this issue? Is it fixed?