Canvas setTransform() 方法绘制边框不放大技巧
在使用 setTransform() 方法时,可以在绘制边框前先保存当前的 canvas 状态,绘制完边框后再恢复 canvas 状态,这样就可以避免边框被放大的问题。具体代码如下:
// 保存当前 canvas 状态
ctx.save();
// 设置变换矩阵
ctx.setTransform(scaleX, 0, 0, scaleY, x, y);
// 绘制图形
ctx.beginPath();
ctx.rect(0, 0, width, height);
// 绘制边框
ctx.lineWidth = borderWidth;
ctx.strokeStyle = borderColor;
ctx.stroke();
// 恢复 canvas 状态
ctx.restore();
在上面的代码中,先使用 ctx.save() 方法保存当前 canvas 状态,然后使用 ctx.setTransform() 方法设置变换矩阵,接着绘制图形和边框。最后使用 ctx.restore() 方法恢复 canvas 状态,这样就可以保证边框不被放大。
原文地址: https://www.cveoy.top/t/topic/ohPC 著作权归作者所有。请勿转载和采集!