Home > Software design >  Misalignment and Black/Blank upload when cropping images with Croppie.js and a Modal
Misalignment and Black/Blank upload when cropping images with Croppie.js and a Modal

Time:09-17

When working on a website on my local server, I came across an issue with Image to upload

The Issue

With a modal on Codepen, the issue only happens in the Editor view — Image B: [codepen](Codepen: (A) Details view; (B) Editor view

Normal behaviour: When using the zoom slider on the modal in the Details view, the image is transformed from the center.

enter image description here

The bug: However, the image is transformed from a corner when in the Editor view. This somehow leads to a black image being uploaded when the crop button is clicked.

enter image description here

Sometimes (depending on the amount of zoom applied), instead of a black image:

  • only the left side of the image is uploaded with the right side is cut off; or
  • the image is uploaded zoomed in to the corner.

There is still misalignment even when the zoom is not applied.

Environment

From my tests so far, this issue does not happen on mobile browsers (although I only tested with Google Chrome and Mozilla Firefox). I have noticed the issue on Desktops with Windows 7 and 10 (I am yet to test on other Operating Systems).

Bug Present

  • Windows 10: Google Chrome and Microsoft Edge
  • Windows 7: Microsoft Edge

No Bug

  • Windows 10: Mozilla Firefox
  • Windows 7: Google Chrome and Mozilla Firefox

My Efforts so far

I have tried debugging the croppie.css and croppie.js files, but to no avail. However, I strongly suspect the problem lies in the js file. It might have something to do with the the css transform-origin property or the functions for obtaining the image dimensions returning different values on modals. Does anyone have an idea on what the cause of this issue might be?

CodePudding user response:

It appears that the extra padding applied to the outer modal div by bootstrap when triggering the modal('show') was what caused the problem, for me at least. Once I removed the extra padding the problem was fixed. Seems like this padding somehow messed with the point calculation when cropping or moving the viewport. I'm still using an older bootstrap version though, so I'm not sure if that would be a fix for the newer ones.

I had this problem on Chrome only probably caused by their last update, since everything was working fine for some time now. On Mozilla there were no issues to begin with.

CodePudding user response:

Got this problem on latest Chrome when used croppie inside of modal Helped me to change style in bootstrap modal .modal-dialog class image

Style that you need to update

Setting transform to unset instead of using translate function.

Hope it helps you too

  • Related