设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 119|回复: 9

canvas画图被放大且模糊的解决方法

[复制链接]

1

主题

34

回帖

90

积分

注册会员

积分
90
发表于 2024-4-20 10:31:54 | 显示全部楼层 |阅读模式
先来理解canvas的这几个宽度和高度
canvas.width是画布的大小,而canvas.style.width是浏览器渲染的canvas的尺寸
第一个问题:画布的高度和宽度
画布的宽和高一定要在canvas标签中设置,如果是在css样式中设置,则不起作用,画布会按照默认尺寸width:300px,height:150px显示
  1. //在标签中设置宽和高
  2. <canvas id="canvas" width="324" height="622" >
复制代码
除了直接在canvas标签设置,还可以在绘制的时候设置,注意画布的宽高不需要单位
  1. canvas.width = 324;
  2. canvas.height = 622;
复制代码
第二个问题:绘制的图形被放大,图像模糊
这是由于手机的设备独立像素和物理像素不一致,设备像素比=物理像素/设备独立像素,大部分手机的设备像素比为2,这意味着100px的图像要放在200px中才可以正常显示
用devicePixelRatio可以获取到设备像素比,获取到像素比后,我们就可以控制图形的缩放比例
  1. scale = window.devicePixelRatio;
复制代码
刚刚说了,canvas.style.width是浏览器渲染的canvas的尺寸,那要想你画的图形正确且清楚的显示在画布中,你需要设置正确的style.width和style.height,如下图,注意加上单位。
  1. canvas.style.width = canvas.width / scale + 'px';
  2. canvas.style.height= canvas.height/ scale + 'px';
复制代码
上面我们设置了画布的宽度为324,如果不设置style.width,则画的图形会被放大到2倍显示。
到此这篇关于canvas画图被放大且模糊的解决方法的文章就介绍到这了,更多相关canvas图被放大且模糊内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

0

主题

40

回帖

79

积分

注册会员

积分
79
发表于 2024-5-13 16:40:09 | 显示全部楼层
我想了解更多

1

主题

39

回帖

101

积分

注册会员

积分
101
发表于 2024-8-2 01:38:36 | 显示全部楼层
确实牛逼

1

主题

59

回帖

141

积分

注册会员

积分
141
发表于 2024-8-18 07:50:22 | 显示全部楼层
我不太确定,可能需要再确认一下。

0

主题

39

回帖

79

积分

注册会员

积分
79
发表于 2024-8-24 20:02:27 | 显示全部楼层
非常感谢你的观点,让我受益良多!

3

主题

59

回帖

185

积分

注册会员

积分
185
发表于 2024-8-27 17:03:13 | 显示全部楼层
说得太好了,完全同意!

1

主题

41

回帖

105

积分

注册会员

积分
105
发表于 2024-9-1 15:34:38 | 显示全部楼层
同意!

0

主题

37

回帖

75

积分

注册会员

积分
75
发表于 2024-9-19 18:44:48 | 显示全部楼层
非常感谢你的观点,让我受益良多!

2

主题

61

回帖

167

积分

注册会员

积分
167
发表于 2024-10-18 21:37:29 | 显示全部楼层
确实牛逼
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:17
  • 最近打卡:2024-05-10 17:34:36

2

主题

41

回帖

144

积分

注册会员

积分
144
发表于 6 天前 | 显示全部楼层
你的信息来源是?我想了解更多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 09:08 , Processed in 0.084669 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表