这个是以前开发小程序的时候常见的问题
原因是因为移动端的DPR比较高
最近有个同事的PC也是模糊的,他的devicePixelRatio是1.2
常见的操作是把画布和画布内的元素 都画大dpr倍
很多人都是用 dpr * 来实现的
但是这样会写很多次
// 用 ctx.scale直接放大可以比较好的解决问题
var c=document.getElementById("myCanvas");
c.width = dpr*canvas.offsetWidth
c.height = dpr*canvas.offsetHeight
var ctx=c.getContext("2d");
ctx.fillStyle = "#fff";
ctx.fillRect(0, 0, canvas.width, canvas.height)
ctx.scale(dpr,dpr)
ctx.font="16px Arial";
ctx.strokeText("Hello World",10,50);
ctx.strokeText("holiday",10,80);
手机效果.png
网友评论