时间:2021-05-08
我们知道,清空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,因而导致绘制效果错乱。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
遇到的问题:canvas元素变形失真的原因一个DOM元素存在三种尺寸:style尺寸,html尺寸,css尺寸。使用canvas元素时,canvas元素默认宽高
OnLeaks再度出新料,lgg4屏幕将配置5.3英寸2K高清屏。据之前的消息称,LGG4尺寸为148.9x76.5x9.9MM,但屏幕尺寸可能为诡异的5.
先来理解canvas的这几个宽度和高度canvas.width是画布的大小,而canvas.style.width是浏览器渲染的canvas的尺寸第一个问题:画
高清屏幕录制软件Bandicam更新至2.3.0.834版,本次更新支持H.264CPU编码,用户可以直接把录制好的视频上传到Vimeo。修复了在Win10下录
当我们想到高清时,我们仍然倾向于想到高清电视屏幕。但是,如今,电视,笔记本电脑,移动设备和平板电脑上的所有类型的屏幕都是高清屏幕。高清技术的普及还需要一段时间,