H5 canvas的 width、height 与style中宽高的区别

Canvas 的width height属性

1、当使用width height属性时,显示正常不会被拉伸;如下


8浏览器不支持Canvas,请升级或改用其它浏览器!

var canvas = document.getElementById("mycanvas"),

ctx = canvas.getContext('2d');

ctx.moveTo(0,0);

ctx.lineTo(300,150);

ctx.stroke();

运行效果如下,为对角线

2、使用style时图像会被拉伸(变形),


#mycanvas {

width: 150px;

height: 150px;

}

运行效果

如何理解???可以这么理解————

Canvas 是一个画板和一张画纸,画板相当于一个容器,画图/作业是在画纸上进行的,

画板和画纸的默认宽高是300*150,当画纸与画板宽高相等时,图像不会被拉伸,当画纸与画板宽高不一样时,图像就会被拉伸(变形)。

1, width 和 height 属性是设定画板和画纸的宽高,

如: width=”300” height=”300” 即画板的宽高是300*300,画纸的宽高也是300*300,作业的300*300 的对角线图像就不会被拉伸

2, style样式 里设定的是仅画板的宽高,画纸的宽高还是为默认值300*150,

(以上图为例)因此所作业的300*300的对角线图像仅有一部分画在画纸上,如下:

Btw 画纸不会让画板就这么空出一片,于是画纸连同图像就要一起拉伸到跟画板大小一样。在此例子当中,画纸宽与画板宽都为30,而高为画板的一半,因此只需将高拉伸一倍即可,so 图像也一起被拉伸变瘦,X方向不变,Y方向增至一倍, 所以就得到了变形之后的图片

来源http://www.cnblogs.com/regina1123/p/6234719.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,206评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 5,478评论 0 4
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,369评论 3 40
  • 大家好,我是IT修真院成都分院第6期的学员先小波,一枚正直纯洁善良的WEB前端程序员。 今天给大家分享一下,修真院...
    xianxiaobo阅读 3,280评论 0 0
  • 三年时光太匆匆 眨眼之间三秋再寒冬 清晨朝气雾蒙蒙 早起晨读又匆匆 又因几时之恨 消去了三年陪伴 三年培育...
    长城以北阅读 1,621评论 0 1

友情链接更多精彩内容