求助!html在里面添加背景图片代码,显示模糊,怎么搞?

求助!html在里面添加背景图片代码,显示模糊,怎么搞?,第1张

HTML 中要设置背景的块大小  比如div    300px * 400px

那么背景图的最佳尺寸也是 300px 400px

然后设置 background: url(imgs/your.jpg)  no-repeat  center center

背景水平垂直居中,效果最佳

css样式background属性值详解

背景图无论是缩放还是扩展,都会失真变得模糊,所以尺寸最接近块的大小最好

图片模糊很正常,因为你拉伸了图片(而且还有可能改变了纵横比产生变形).

而且,你这种方法也不是背景图,而是插入图片.

白边是因为body默认的内外补丁的关系,可以加一个样式解决

<style>

html, body { margin:0padding:0}

</style>

不光绘制图片,在高分屏下,绘制文字和线条都会出现模糊的现象,GitHub上有一个hidpi-canvas-polyfill可以很好的解决这个问题,但是没有对图片进行处理。如果你了解了原因,解决这个问题也很容易。

首先,引入上方这个polyfill

然后,得到devicePixelRatio和backingStorePixelRatio的比例,可以使用下面的方法

var getPixelRatio = function(context) {

  var backingStore = context.backingStorePixelRatio ||

    context.webkitBackingStorePixelRatio ||

    context.mozBackingStorePixelRatio ||

    context.msBackingStorePixelRatio ||

    context.oBackingStorePixelRatio ||

    context.backingStorePixelRatio || 1

   return (window.devicePixelRatio || 1) / backingStore

}

//调用

var ratio = getPixelRatio(ctx)

之后,在调用ctx.drawImage()的时候,给width和height乘以ratio,如下:

ctx.drawImage(document.querySelector('img'), 10, 10, 300 * ratio, 90 * ratio)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6238509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存