解决小程序canvas高清屏模糊问题

本文介绍了canvas在高dpi设备上显示模糊的原因,并提供了解决方案。关键在于理解canvas的画布尺寸和渲染尺寸的区别,通过调整画布尺寸为渲染尺寸的设备像素比倍数,然后进行缩放,可以确保在高清屏幕上清晰显示。代码示例展示了如何根据设备像素比计算并设置canvas的尺寸,从而实现高清适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因

因为 canvas 不是矢量图,而是像图片一样属于位图。高 dpi 显示设备意味着每平方英寸有更多的像素,比如说二倍屏,手机就会以2个像素点的宽度来渲染一个像素,该 canvas 在屏幕中相当于占据了2倍的空间,相当于绘制的元素被放大了一倍,因此绘制出来的图片文字等会变模糊。

解决方案思路

首先要明确一点,canvas分为画布尺寸和渲染尺寸。渲染尺寸就是在css样式文件里设置的width、height大小,而画布尺寸则是在canvas标签里设置的width和height,比如< canvas id=‘canvas’ width=“200” height=“200” />。
明确了什么是画布尺寸,什么是渲染尺寸。那么解决canvas在高清屏模糊的问题就很简单了,只需要将canvas的画布尺寸扩大到渲染尺寸的设备像素比倍,然后再缩放到渲染尺寸显示即可。举个例子,假如一个canvas的实际渲染尺寸大小为200x200px,那么在iPhone x手机DPR为3的情况下canvas的画布尺寸则为600*600,canvas绘制完毕后再缩放3倍显示即可。

效果图

优化前优化前
优化后
在这里插入图片描述

代码


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值