【发布时间】:2017-04-22 12:04:55
【问题描述】:
我有以下代码:
https://jsfiddle.net/8o3sn9mh/17/
<canvas id='c' style='position:absolute; left:0px; top:0px;'>
</canvas>
<script>
var
canvas = document.getElementById('c'),
ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var flower = new Image();
flower.src = "http://plainicon.com/dboard/userprod/2803_dd580/prod_thumb/plainicon.com-46129-128px-af2.png"
flower.onload = function(){
ctx.drawImage(flower,0,0,128,128, 0, 0, 30, 30);
ctx.drawImage(flower,0,0,128,128, 0, 0, 218, 218);
</script>
简短的故事:你可以看到花朵没有很好地调整大小,它的质量已经丢失。
长篇大论:
我正在制作一个有形状的游戏。基本上,我使用比例为 128-128 或 80-80 的图像,因为它是为手机设计的,并且我确保在调整图像大小时保持 1:1 的比例。通过基于用户窗口的计算,由于画布处于全屏状态,我决定按比例调整图像大小。它在某些屏幕上效果不错,但在某些屏幕上却不行——图像可能缩小太多,看起来很差,或者放大太多,看起来不清楚。它在三角形图像上最为明显(我知道我可以用画布绘制纯形状,但我需要在它们上面画脸,所以这是不可能的)。有什么好方法吗?
【问题讨论】:
标签: javascript css html canvas