C#DrawImage绘制背景图片太模糊了怎么办

C#DrawImage绘制背景图片太模糊了怎么办,第1张

g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor

g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half

DrawImage之前唤团前加上这两行代码慧橘链逗立马就清晰了。

不光绘制图片,在高分屏下,绘制文字和线条都会出现模糊的现象,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)


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

原文地址:https://54852.com/yw/8282554.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存