Jar*_*rod 6 javascript canvas retina-display html5-canvas
我有一个iPad 2画布应用程序(游戏),并希望它在新的iPad视网膜显示器上运行.
简而言之,为视网膜iPad型号拉伸/缩小iPad2图像的最佳方法是什么?
从谷歌搜索我已经看到了各种方法,但许多方法包括从视网膜大小的图像开始和缩放完成.
我还听说将视网膜质量大小的像素推向屏幕的性能很慢,并且最好以牺牲一些质量为代价来使用iPad尺寸的图像.
就像现在一样,在新的iPad上,我看到我的应用程序的左上角,这是有道理的,但与iPad 2相比,性能令人震惊.
我见过的技术包括CSS媒体查询,使用像素密度和CSS变换 - 这显然非常快.
谢谢
Bri*_*kel 10
我已经整理了一个简单的函数来处理这个问题.基本上,它采用当前的画布大小并按设备像素比进行缩放,使用CSS将其缩小.然后按比例缩放上下文,以便所有原始函数像往常一样工作.
你可以试一试,看看性能如何.如果它不是您所希望的,您可以将其删除.
function enhanceContext(canvas, context) {
var ratio = window.devicePixelRatio || 1,
width = canvas.width,
height = canvas.height;
if (ratio > 1) {
canvas.width = width * ratio;
canvas.height = height * ratio;
canvas.style.width = width + "px";
canvas.style.height = height + "px";
context.scale(ratio, ratio);
}
}
Run Code Online (Sandbox Code Playgroud)