首页 > Web开发 > 详细

base64图片旋转代码js

时间:2020-05-18 16:09:36      阅读:150      评论:0      收藏:0      [点我收藏+]

<html>
<head>

<style type="text/css">
body, button {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
</style>

</head>
<body>

<div style="width:50px; height:50px; margin:100px auto;text-align:center;line-height:50px;">
<img id ="test"/>
<img id="img"/>
</div>
</body>
<script>
function rotateBase64Img(src, edg, callback) {
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
var imgW;//图片宽度
var imgH;//图片高度
var size;//canvas初始大小
if (edg % 90 != 0) {
console.error("旋转角度必须是90的倍数!");
throw ‘旋转角度必须是90的倍数!‘;
}
(edg < 0) && (edg = (edg % 360) + 360)
const quadrant = (edg / 90) % 4; //旋转象限
const cutCoor = {sx: 0, sy: 0, ex: 0, ey: 0}; //裁剪坐标
var image = new Image();
image.crossOrigin = "anonymous"
image.src = src;
image.onload = function () {
imgW = image.width;
imgH = image.height;
size = imgW > imgH ? imgW : imgH;
canvas.width = size * 2;
canvas.height = size * 2;
switch (quadrant) {
case 0:
cutCoor.sx = size;
cutCoor.sy = size;
cutCoor.ex = size + imgW;
cutCoor.ey = size + imgH;
break;
case 1:
cutCoor.sx = size - imgH;
cutCoor.sy = size;
cutCoor.ex = size;
cutCoor.ey = size + imgW;
break;
case 2:
cutCoor.sx = size - imgW;
cutCoor.sy = size - imgH;
cutCoor.ex = size;
cutCoor.ey = size;
break;
case 3:
cutCoor.sx = size;
cutCoor.sy = size - imgW;
cutCoor.ex = size + imgH;
cutCoor.ey = size + imgW;
break;
}
ctx.translate(size, size);
ctx.rotate(edg * Math.PI / 180);
ctx.drawImage(image, 0, 0);
var imgData = ctx.getImageData(cutCoor.sx, cutCoor.sy, cutCoor.ex, cutCoor.ey);
if (quadrant % 2 == 0) {
canvas.width = imgW;
canvas.height = imgH;
} else {
canvas.width = imgH;
canvas.height = imgW;
}
ctx.putImageData(imgData, 0, 0);

//获取旋转后的base64图片

//canvas.toDataURL()
callback(canvas.toDataURL())
};
}
var url = ‘data:image/png;base64,base64转义后的url‘;
function callback(base64data) {
document.getElementById("img").src = base64data;
}
//原本的图片
document.getElementById("test").src=url;
//图片旋转
rotateBase64Img(url, 270, callback);
</script>
</html>
————————————————
版权声明:本文为CSDN博主「苏雨丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38082304/article/details/85287718

base64图片旋转代码js

原文:https://www.cnblogs.com/sq652366/p/12911029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!