我正在做一个HTML5项目,它将在iPad上的WKWebView中运行。
我的WKWebView框架是全屏的,视口是1180 x820,所以我把画布的大小和高度也设置为1180 x820。
这是我想展示的原始图片:
但是,当我使用drawImage函数在画布上显示1920 x1080的图像时,图像不适合屏幕(明显),但显示得很好(不模糊)。
_canvasContext.drawImage(imgMenu,0,0,1920,1080).
因此,我在绘制图像时重新缩放图像,仍然使用drawImage函数。_canvasContext
.drawImage(imgMenu,0,0,1920/2,1080/2)
X1 C2 D1 X图像适合屏幕,但很模糊。降比例真的真的很糟糕(它真的可以更好,这个例子不是最糟糕的)。
我已经试过参数了
_canvasContext.imageSmoothingEnabled = true;
_canvasContext.webkitImageSmoothingEnabled = true;
_canvasContext.mozImageSmoothingEnabled = true;
_canvasContext.imageSmoothingQuality = "high";
它没有帮助。
也许我做错了什么,我不知道该怎么办。
我的iPad屏幕分辨率是2360 X1640,所以显示1920 X1080的图片应该不成问题。
如果有人能帮助我,那就能保存我的命:)
最好的问候,亚历克斯
1条答案
按热度按时间oxcyiej71#
这是画布令人烦恼和困惑的事情之一。你需要做的是使用
devicePixelRatio
来调整画布的大小。这将增加画布的实际大小,以匹配设备的像素密度。这可能是2,或1.5等...视网膜屏幕通常是2。对于绘制图像,明智的方法是支持任何图像大小,并将其放入画布区域(通常是缩小)。* 对于一个很小的图像,此代码将放大并丢失分辨率。*
正如代码片段中的注解所提到的,如果你想让你的画布总是使用1180x820 ...一定要修改width和height变量:
出于代码片段的目的,我使用了窗口大小。如果您希望支持其他设备大小,这可能更适合您。