关于设备像素比

因为高dpi会把原本低dpi的图片或者canvas拉伸导致模糊,所以在定义的时候我们让画布和画布的内容(因为canvas和内容是两个东西)都放大,这样保证高清,个人理解,如有更好的想法可及时更改
1.画布尺寸调整:首先,我们需要根据设备的DPI或像素比调整Canvas的物理尺寸。这意味着如果设备的DPI较高,我们会按比例增加Canvas的实际像素尺寸,而不改变其逻辑尺寸。这样,Canvas就能匹配更多物理像素来呈现内容,避免拉伸。

2.内容缩放:单纯增大Canvas尺寸会导致绘图内容按默认大小绘制时显得过小。因此,我们会在Canvas的绘图上下文中设置一个缩放因子(通常是DPR),使得所有绘制操作(如图像、形状、文本等)在绘制前都按此因子缩放。这样,内容会被放大到适合高DPI屏幕的大小,同时保持其原始的清晰度和比例,不会显得模糊。

通过这两个步骤,即使是在高分辨率的屏幕上,用户也能看到清晰、适配良好的图像和图形内容。这确保了视觉体验的一致性和高质量,无论用户的设备是标准DPI还是高DPI。
createHiDPICanvas(width, height) {
let dpr = uni.getSystemInfoSync().devicePixelRatio;
let canvas = uni.createCanvas();
canvas.width = width * dpr;
canvas.height = height * dpr;
canvas.getContext('2d').scale(dpr, dpr);
return canvas;
}

posted @   jialiangzai  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示