canvas实现图片旋转缩放
来源:互联网 发布:香港御可贡茶加盟 知乎 编辑:程序博客网 时间:2024/05/19 12:16
canvas实现图片旋转,用到的基本函数:
rotate()实现旋转;
scale(X,Y)实现缩放,X代表水平缩放,Y代表垂直缩放;
translate(X,Y)为画布的变换矩阵添加水平的和垂直的偏移;
基本思路:用rotate()方法实现图片旋转,用scale()实现缩放。rotate()旋转的时候是以左上角为顶点进行旋转,如果想以图片中心为定点旋转,用translate()将点定位到图片中心就好。
本例子以一个黑色矩形来模拟图片,实现类似的效果。
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> body{background: black;} #myCanvas{background: white;} </style> </head> <body> <canvas id="myCanvas" width="400" height="400"></canvas> </body> <script> window.onload = function(){ var oC = document.getElementById("myCanvas"); var OGC = oC.getContext("2d"); //将方块起始点向左向下移动100单位 OGC.translate(100,100); //OGC.rotate(45*Math.PI/180); //旋转以顶点为中心点,旋转会累加 //等同于旋转45度 OGC.rotate(20*Math.PI/180); OGC.rotate(25*Math.PI/180); OGC.scale(2,2); //等比放大,宽放大2倍,高放大两倍 OGC.fillRect(0,0,100,100); } </script></html>
基本效果如果图示:方块等比放大2倍,并旋转45度;
接下来通过计时器,让这个方框动起来,在用计时器的时候每次开始要先保存绘制路径,并清除画布大小,结束的时候要用restore()方法清除本次的绘图,保持始终是一个方框在动。
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> body{background: black;} #myCanvas{background: white;} </style> </head> <body> <canvas id="myCanvas" width="400" height="400"></canvas> </body> <script> window.onload = function(){ var oC = document.getElementById("myCanvas"); var OGC = oC.getContext("2d"); var num = 0; var num2 = 0; var value = 1; setInterval(function(){ num++; OGC.save(); OGC.clearRect(0,0,oC.width,oC.height); OGC.translate(100,100); //通过value改变num2值,控制是放大还是缩小 if (num2 == 100) { value = -1; } else if(num2 == 0){ value = 1; } num2+=value; OGC.rotate(num*Math.PI/180); //将旋转中心移到图片中心 OGC.translate(-50,-50); OGC.fillRect(0,0,100,100); OGC.restore(); },30); } </script></html>
效果图如下,gif看起来有些卡顿,实际运行很流畅,可以直接复制代码运行查看效果:
阅读全文
0 0
- canvas实现图片旋转缩放
- 点击实现图片旋转缩放
- canvas 平移 缩放 旋转
- 图片(旋转/缩放/翻转)变换效果(ccs3/滤镜/canvas)
- 图片处理(旋转,平移,缩放)View---Canvas;Paint;Bitmap
- 使用HTML5 canvas 标签进行图片裁剪、旋转、缩放
- CANVAS移动、缩放、旋转画入的图片
- Canvas的应用,图片的移动、旋转、缩放
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- CSS+JS实现图片无缩放旋转
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- Android实现图片缩放与旋转
- ImageView实现图片旋转和缩放
- 遍历集合时移除一个元素
- TCP三次握手和四次挥手
- OpenGL ES中的坐标变换
- 腾讯社交广告大赛 —— 特征与模型介绍
- TensorFlow 卷积层
- canvas实现图片旋转缩放
- [BZOJ 3629][ JLOI2014 ]聪明的燕姿
- 关于HttpClient的应用
- 判断一个数的奇偶性
- npm使用淘宝镜像加速以及使用cnpm
- 《算法导论》第一章-第1节_练习(参考答案)
- jdk环境变量设置不成功怎么办
- Redis与mybatis,shiro,spring session整合
- yum本地源配置