原文链接
前言
在微信小程序中做分享海报, 需要绘制 canvas,设置图片 100% 占满元素, 作为海报的背景。
开始
文档翻一翻, canvas.drawImage() 一把梭, 呃呃呃…发现背景图片没有按照原图 100% 平铺, 而是只取了部分, 变形了
实践
装X失败, 还是仔仔细细看看文档
drawImage(image sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 从 1.9.0 起支持
先来分析以下这些参数的含义吧~ 和 h5 中的参数是一致的
sx源图像的矩形选择框的左上角x坐标sy源图像的矩形选择框的左上角y坐标sWidth源图像的矩形选择框的宽度sHeight源图像的矩形选择框的高度dx图像的左上角在目标canvas上x轴的位置dy图像的左上角在目标canvas上y轴的位置dWidth在目标画布上绘制图像的宽度, 允许对绘制的图像进行缩放dHeight在目标画布上绘制图像的高度, 允许对绘制的图像进行缩放
看完是不是[黑人问号.jpg], whatttt…???
上图上图

再看看我们失败的代码(此处使用普通h5作为演示)
<img id="tulip" src="/share/img/bg-second@3x.png">

在微信小程序中制作分享海报时遇到canvas背景图片填充异常的问题,通过研究canvas.drawImage()方法参数,发现canvas的宽高属性与CSS样式中的宽高不同,导致背景绘制不全。解决方案是为canvas显式设置宽高属性,以确保正确填充背景。
最低0.47元/天 解锁文章
2289





