博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Html5 Canvas初探学习笔记(13) -图片变换
阅读量:4647 次
发布时间:2019-06-09

本文共 1712 字,大约阅读时间需要 5 分钟。

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

之前的图形变换中的那些操作的状态值,在图片操作里依然有用,虽然像缩放这样的操作我们在绘制的时候就可以实现,不过这依然是一种实现的方法

1.图片的平移,效果如下:

代码如下:

var image = new Image();

image.src = "grossini.png";

image.onload = function(){

   context.drawImage(image,50,50);

   context.translate(100,100);

   context.drawImage(image,50,50);

}

和图形操作一样,在平移之后,我们给的坐标值都会发生相应的偏移,同样的也可以使用矩阵方法来实现。代码如下:

var image = new Image();

image.src = "grossini.png";

image.onload = function(){

   context.drawImage(image,50,50);

   context.transform(1,0,0,1,100,100);

   //context.transform(0,1,1,0,100,100);

   context.drawImage(image,50,50);

}

同样的,注掉的那句transform和没有注掉的transform效果是一样的,从整体上前四个参数负责缩放和旋转,后两个参数是平移,前四个参数14为一组控制缩放,23为一组控制旋转,12x值,34y值,56分别为x,y的平移,这里之所以要在14这组和23这组中的一组里写1,是因为我们要保证矩形不被缩放,如果是0的话则大小被缩放为0

2.缩放图片

效果如下:

代码如下:

image.onload = function(){

   context.drawImage(image,50,50);

   context.translate(150,50);

   context.scale(0.5,0.5);

   context.drawImage(image,0,0);

}

同样的,需要配合平移和缩放,因为缩放之后,你的坐标位置也会作相应的缩放。也可以使用矩阵方法来实现相应的操作。

image.onload = function(){

   context.drawImage(image,50,50);

   context.transform(0.5,0,0,0.5,150,50);

   context.drawImage(image,0,0);

}

就是14两个参数缩放0.5.

3.旋转

逆时针旋转,效果如下:

代码如下:

context.drawImage(image,50,50);

context.transform(-Math.sin(Math.PI/4),Math.cos(Math.PI/4),Math.cos(Math.PI/4),Math.sin(Math.PI/4),150,50);

context.drawImage(image,0,0);

两组参数分别为负的sin旋转角,cos旋转角,cos旋转角,sin旋转角。

顺时针旋转,效果如下:

代码如下;

context.drawImage(image,50,50);            context.transform(Math.cos(Math.PI/4),Math.sin(Math.PI/4),-Math.sin(Math.PI/4),Math.cos(Math.PI/4),150,50);

context.drawImage(image,0,0);

两组参数分别为cos旋转角,sin旋转角,负的sin旋转角,cos旋转角。

如有错误,希望大家多多指正

下一篇继续研究canvas中的像素操作

转载于:https://www.cnblogs.com/manshuoquan/archive/2012/04/05/5347161.html

你可能感兴趣的文章
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>
POJ-1128 Frame Stacking
查看>>
浏览器调试淘宝首页看到有趣的招聘信息
查看>>
ASP.NET Identity “角色-权限”管理 4
查看>>
[转][译]ASP.NET MVC 4 移动特性
查看>>
SOC CPU
查看>>
get_result --perl
查看>>
163镜像地址
查看>>
ehcache memcache redis 三大缓存男高音
查看>>
eclipse 快捷键Open Implementation 直接退出
查看>>
minix中管道文件和设备文件的读写
查看>>
JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
查看>>
context 插图
查看>>
文件管理器中不支持的wma歌曲也显示可以播放的音乐图标
查看>>
Java基础学习-流程控制语句
查看>>
Shell中read的常用方式
查看>>
01javascript数据类型
查看>>
asp.net实现md5加密方法详解
查看>>
AJAX
查看>>
table 的thead th 固定 tbody滚动例子
查看>>