Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数将base64图像旋转X度并返回新的base64_Javascript_Jquery_Html_Canvas_Rotation - Fatal编程技术网

Javascript函数将base64图像旋转X度并返回新的base64

Javascript函数将base64图像旋转X度并返回新的base64,javascript,jquery,html,canvas,rotation,Javascript,Jquery,Html,Canvas,Rotation,我想要一个javascript函数,它将base64图像旋转X度并返回新的base64图像 示例我希望使用以下内容调用函数: var newImg=rotateImg(图像数据,90)//它将返回旋转90度的原始图像的base64字符串 (底部的示例base64图像字符串) 理想情况下,该功能将与非html5浏览器向后兼容,但为简单起见,欢迎使用纯画布解决方案 我已经为此奋斗了好几天了 我知道解决方案可能是,加载带有原始字符串的图像对象,创建临时画布对象和上下文,然后旋转上下文,然后将画布转换回

我想要一个javascript函数,它将base64图像旋转X度并返回新的base64图像

示例我希望使用以下内容调用函数:

var newImg=rotateImg(图像数据,90)//它将返回旋转90度的原始图像的base64字符串

(底部的示例base64图像字符串)

理想情况下,该功能将与非html5浏览器向后兼容,但为简单起见,欢迎使用纯画布解决方案

我已经为此奋斗了好几天了

我知道解决方案可能是,加载带有原始字符串的图像对象,创建临时画布对象和上下文,然后旋转上下文,然后将画布转换回图像字符串,但只需让它工作即可。。。。请帮忙

示例图像字符串:

数据:图像/png;base64,一个中国政府的一个BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFST58T0CUPV目前,中国的一些研究者对中国的一些研究者提出了一种新的观点,对中国的一些研究者提出了一种基于B1181VVX2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB18 18 18 18 18 18 18 18 18 18 18-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB18 18 18 18 18 18 18 18 18 18 18-BBBBBBVVVVVVVVGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBLG30UYL0Krp5HNPQI0SDHZKEM3TWJ4TP7U6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,8月8日,8月8日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6日,6月6日,6日,8日,8月8日,8日,8日,8日,8日,8日,6日,6日,6日,6日,6日,8日,6日,6日,6日,6日,6日,6月6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6日,6/+NPSkpMGRcf/+h9/+Vm/+At/9YBLSss/+dy/+ZaLy0y/vQCJyU(2)A/A/A/A/A/A/A/9/9/j/j+8/8/j+//8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/8/7/7/8/7 rpownidcvikuakcsn3djclnufm/TOb2cl88//v7fv3vvv108n9j0cithou12、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2 HBRFIQYFWUE/TwaFzOM8x27YZ+Zpv74.这是一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个中国的的的的的的的的关于关于关于关于的的的关于关于关于关于关于的的的的关于关于关于的的关于关于的关于的关于的关于的关于一个中国的关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于一个关于的关于的的WBJOLSIR7DCSD37R3T2.在一个新的研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个研究领域中,一个问题,一个研究领域中,一个研究领域中,一个问题,一个研究领域中,一个问题,一个研究领域,一个问题,一个问题,一个研究领域,一个问题,一个问题,一个问题,一个研究领域,一个问题,一个问题,一个问题,一个问题,一个研究领域,一个问题,一个问题,一个问题,一个问题,一个问题,一个问题,一个问题,一个问题,一个问题,一个问题,一个JZPD86AN+VRC2nH2.在一篇文章中,我们发现了一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,一个新的研究领域,在一个新的研究领域,一个新的一个新的研究领域,一个新的一个新的研究领域,一个新的研究领域,一个新的一个新的一个新的研究领域,新的一个新的研究领域,新的一个新的一个新的一个新的研究成果,新的一个新的一个新的一个新的一个新的研究,一个新的研究,一个新的一个新的一个新的研究,新的研究成果,新的研究成果,新的一个新的一个新的一pmzwvh4+LG2)2)2)2)2)2)2(2)2(2)2)2(2)2(2)2(2)2(2)2(2)2(2)2(2)2(2)2(2)2)2(2)2)2(2)2)2(2)2)2(2)2)2)2(2)2)2(2)2)2(2)2)2)2(2)2)2)2(2)2)2)2)2(2)2)2)2)2)2(2)2)2)2(2)2)2)2)2)2)2)2)2)2(2)2)2)2)2)2)2)2(2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2)2 W9X5WR4VGD5UQZAR949JV研究发现,一个新的研究发现了一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个新的研究方向,一个研究方向,一个新的研究方向,一个新的研究方向,一个研究方向,一个研究方向,一个新的研究方向,一个研究方向,一个研究方向,一个新的一个研究方向,一个研究方向,一个研究方向,一个新的研究方向,一个研究方向,一个新的一个研究方向,一个研究方向,一个研究方向,一个新的一个研究方向,一个研究方向,一个研究方向,一个研究方向,一个新的一个研究方向,一个新的一个研究方向,一个研究方向,一个研究方向8A/Bof4kY+PTWAAASASUVORK5CIIA=

这是密码

<html>
<head>

</head>
<body>
<canvas id="c"/>
</body>
<script>
function rotateBase64Image(base64data, callback) {
    var canvas = document.getElementById("c");
    var ctx = canvas.getContext("2d");

    var image = new Image();
    image.src = base64data;
    image.onload = function() {
        ctx.translate(image.width, image.height);
        ctx.rotate(180 * Math.PI / 180);
        ctx.drawImage(image, 0, 0); 
        window.eval(""+callback+"('"+canvas.toDataURL()+"')");
    };

}
rotateBase64Image("data:image/png;base64,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", 'callback');
function callback(base64data) {
    console.log(base64data);
}
</script>
</html>

函数rotateBase64Image(base64data,回调){
var canvas=document.getElementById(“c”);
var ctx=canvas.getContext(“2d”);
var image=新图像();
image.src=base64data;
image.onload=函数(){
ctx.translate(image.width,image.height);
ctx.旋转(180*Math.PI/180);
ctx.drawImage(图像,0,0);
eval(“+callback+”(“+canvas.toDataURL()+”)”;
};
}
RotateBase64图像("数据:图像/png;基本数据:数据:图像/png;基本数据:图像/png;基本数据:图像/巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴巴99GYK6月19日,一项研究发现了一项新的研究成果。一项新的研究发现了一项新的研究成果,一项新的研究成果,一项新的研究成果,一项新的研究成果,一项新的研究成果,一项新的研究成果,一项新的一项新的研究,一项新的研究,一项新的研究,一项新的研究,一项新的研究,一项新的研究,一项新的研究,一项新的研究,在一项新的一年,一项新的六六六六六点六六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六点六六点六点六点六点六点八点八点八点八点八点八点八八点八八点八点八点八八点六六EVZxRGM7U4IH24LG30UYL0Krp5H6月6日,我在一份研究报告中发现了一个新的研究成果。6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6月6日,6日,6月6日,6日,6月6日,6日,6月6日,8日,8月8日,8日,8日,8月8日,8日,6月8日,8日,6月8日,8日,8日,8日,8日,6月8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,6月8日,6日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,8日,6月8日,6月,Z5C4E/+E5DAshBAMY/+AV/+NPSkpMGRcf/+h9/+Vm/+At/9YBLSss/+dy/+ZaLy0y/vQCJyUn/+JFAwMlOjk5QEBG/+UAKCUg/fsA/+0
      /**
       * 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);
      }