ImageManipulator crop requires bounds not working as expected

#1

Hello,

Samsung S8 -> take photo -> returns uri + width and height. With ImageManipulator crop with 0,0 and width and height from camera both minus a small arbitrary of pixels -> error crop rect not in picture when it should definitely be in the picture / valid.

With a little trial and error, if I divide width and height returned by the camera by 2 -> works fine and I get basically the full image minus that little bit. If I divide by 2 and add a couple pixels -> rectangle not in picture as expected. So it seems its a factor of 2 out for some reason.

I then came across this bug with resizing:

So maybe something to do with screen resolutions / pixel ratio.

Which is the bit that is really confusing me, PixelRatio.get() -> returns 3.5 for my S8… not 2… So it seems somewhat unrelated to different resolutions / I cant work around it with pixel ratio.

I dont know where 2 comes from / what is safe to use / how to work around this. I need to use the camera and with an overlay help the user take a picture -> crop out sections of it accurately.

Any help or insight would be great thanks.

1 Like
#2

I’m facing exactly the same problem, I’m really confused.

#3

https://github.com/expo/expo/issues/1406 We’ve recently raised a bug / found something causing issues.

The android lib they use is adjusting images to fit the screen whilst leaving the crop bounds alone -> breaking. If you resize the image first it seems to then have that image loaded / you can crop as expected.

1 Like
#4

i have resized the image then cropped it, and it working for me thanks.

closed #5

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.