学习笔记:Canvas适配高清屏

Posted 剑锈酒残

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记:Canvas适配高清屏相关的知识,希望对你有一定的参考价值。

有个window属性叫devicePixelRatio,可以算出当时设备的物理像素与CSS像素的比例。
语法:

value = window.devicePixelRatio;

然后将canvas按倍数绘制,再用CSS进行缩放,则达到高清的效果。
用法:

    /** @type {htmlCanvasElement} */
    let canvas = document.getElementById("canvas")
    let ctx = canvas.getContext(\'2d\')
    let dpr = window.devicePixelRatio || window.webkitDevicePixelRatio || window.mozDevicePixelRatio || 1;

    let originalWidth = 600, 
        originalHeight = 400

    canvas.style.width =  `${originalWidth}px`
    canvas.style.height = `${originalHeight}px`
    canvas.width = originalWidth * dpr
    canvas.height = originalHeight * dpr

    ctx.scale(dpr, dpr);
    ctx.rect(20, 30, 400, 200)
    ctx.fillStyle = "#000"
    ctx.fillRect(20, 30, 400, 300)
    
    ctx.font = \'28px Arial\'
    ctx.fillStyle = \'#fff\'
    ctx.fillText(\'Hello World\', 30,150)
    ctx.strokeStyle = \'#fff\'
    ctx.strokeText(\'Hello World\',30,180)
    
    let img  = new Image()
    img.onload = function(){
      ctx.drawImage(img, 200, 100, 400, 250)
    }
    img.src = "https://jianxiujiucan.github.io/demo/img/05.jpg"
  </script>

以上是关于学习笔记:Canvas适配高清屏的主要内容,如果未能解决你的问题,请参考以下文章

高清屏下canvas重置尺寸引发的问题

解决用H5 Canvas绘制的图片或文字在高清屏下模糊的问题

移动端,多屏幕尺寸高清屏retina屏适配的解决方案

解决 canvas 在高清屏中绘制模糊的问题

解决 canvas 在高清屏中绘制模糊的问题

移动端高清屏适配方案