首页前端开发HTML高清屏下canvas重置尺寸引发的问题的解决

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

时间2024-01-25 02:51:33发布访客分类HTML浏览459
导读:收集整理的这篇文章主要介绍了高清屏下canvas重置尺寸引发的问题的解决,觉得挺不错的,现在分享给大家,也给大家做个参考。 我们知道,清空canvas画布内容有以下两个方法。第一种方法是cearRect函数:context.cea...
收集整理的这篇文章主要介绍了高清屏下canvas重置尺寸引发的问题的解决,觉得挺不错的,现在分享给大家,也给大家做个参考。

我们知道,清空canvas画布内容有以下两个方法。

第一种方法是cearRect函数:

context.cearRect(0,0,canvas.width,canvas.height)

第二种方法就是用原值重新设置一下canvas的宽(或者高)

canvas.width = canvas.width// or canvas.height = canvas.height

第二种方法可以起作用,是因为canvas的一个特点:

每当画布的高度或宽度被重设时,画布内容就会被清空。相关内容可以参考 https://www.w3school.com.cn/html5/att_canvas_width.asp

在一个可视化项目中,我们发现在一些电脑上面总是会出现效果错乱的情况。

经过调试,我们发现,原来是“canvas.width = canvas.width”惹的祸。普通屏幕下面下不会有问题,但是如果屏幕是高清屏,就会出现问题。这是因为,高清屏下,我们为了处理绘制图形模糊的问题,通常会做如下处理:

function SETUPCanvas(canvas) {
            let width = canvas.width,          height = canvas.height,          dPR = window.devicePixelRatio || 1.0;
        if (dpr != 1.0 ) {
              canvas.style.width = width + "px";
              canvas.style.height = height + "px";
              canvas.height = height * dpr;
              canvas.width = width * dpr;
              ctx.scale(dpr, dpr);
        }
      }
    

我们知道,高清屏下window.devicePixelRatio都大于1。所以在绘图之前画笔会被缩放:

ctx.scale(dpr, dpr);
    

我们知道cavnas是基于状态的绘图组件。 其中缩放比例值也在状态管理之中。 当我们重新设置canvas的宽(高也一样)的时候,不仅会清空canvas的画布内容,同时还会把绘图状态重置到最原始的状态,原始状态下画笔的缩放比例是1,缩放比例值会被重置为1,因而导致绘制效果错乱。
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: html+js 实现markdown编辑器效果下一篇:HTML table 表格边框的实现思路猜你在找的html5相关文章 关于移动端h5开发相关内容总结2022-05-17html5教程-学表单的第二天2018-12-10html5教程-HTML5浏览器支持2018-12-10html5教程-HTML5智能表单2018-12-10html5教程-微信H5使用resLoader实现加载页效果2018-12-10html5教程-day01-初级-JS0-热身运动JS入门教程2018-12-10html5教程-html5shiv.js和respond.min.js2018-12-10html5教程-不同浏览器对于html5 audio标签和音频格式的兼容性2018-12-10html5教程-使用Html5实现手风琴案例2018-12-10html5教程-html5笔记2018-12-10 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: 高清屏下canvas重置尺寸引发的问题的解决
本文地址: https://pptw.com/jishu/586054.html
webView加载html图片遇到的问题解决 html+js 实现markdown编辑器效果

游客 回复需填写必要信息