Javascript function to Rotate a base64 image by X degrees and return new base64

后端 未结 2 1500
闹比i
闹比i 2020-11-30 06:54

I want a javascript function that will rotate a base64 image by X degrees and return the new base64 image.

Example I wish to call a function with something like:

2条回答
  •  感动是毒
    2020-11-30 07:22

    I a little bit generalized method above to convert base64Image string without any dependencies clockwise or counterclockwise

          /**
           * Rotates base64 image string iether 
           * clockwise or counterclockwise
           *
           * @param isClockwise - true or false
           *
           * WARNING!!! Method not null save - assumes all input data are valid
           */
          function rotateBase64Image90deg(base64Image, isClockwise) {
                // create an off-screen canvas
                var offScreenCanvas = document.createElement('canvas');
                offScreenCanvasCtx = offScreenCanvas.getContext('2d');
    
                // cteate Image
                var img = new Image();
                img.src = base64Image;
    
                // set its dimension to rotated size
                offScreenCanvas.height = img.width;
                offScreenCanvas.width = img.height;
    
                // rotate and draw source image into the off-screen canvas:
                if (isClockwise) { 
                    offScreenCanvasCtx.rotate(90 * Math.PI / 180);
                    offScreenCanvasCtx.translate(0, -offScreenCanvas.width);
                } else {
                    offScreenCanvasCtx.rotate(-90 * Math.PI / 180);
                    offScreenCanvasCtx.translate(-offScreenCanvas.height, 0);
                }
                offScreenCanvasCtx.drawImage(img, 0, 0);
    
                // encode image to data-uri with base64
                return offScreenCanvas.toDataURL("image/jpeg", 100);
          }
    

提交回复
热议问题