目标:绘制一张图片,到canvas容器(canvas宽高固定)中
下面是我的实现方式:
var ctx = document.getElement('canvas').getContext('2d');
var img = new Image();
img.src = "xxx";
img.onload = function() {
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
}

(ps: 白色方框内为 cnvas容器);
绘制的图片为何不能充满容器,这和源图片大小有关系吗,因为我试着换成另外一张大图片,竟然可以充满容器绘制。是在不理解(按我的理解,这应该和源图片大小没有关系,因为已经限定了绘制宽高)
css: 代码
.canvas_wrap {
position: absolute;
width: 6.5rem;
height: 4.2rem;
left: 0.5rem;
background: #d02608;
margin: 0px auto;
}
.canvas {
position: absolute;
width: 100%;
height: 100%;
left: 0; top: 0;
border-radius: 2px;
}
另外,在初始化中,已经将canvas的宽度设置为canvas的css宽度(高度也是一样的)

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这样试试。
看你的图片居中的样子,应该是图片是png的,本身就有透明的边距吧
给<canvas>标签设置的宽高是元素的盒模型大小,canvas绘图区域的宽高要通过ctx设置,两个宽高表示的意义是不同的。将ctx的宽高设置为<canvas>的盒模型大小,才可以百分百填充。
各位,抱歉了,是我这里的图片问题(带透明边距)。抱歉