1. 程式人生 > >canvas畫圖模糊問題

canvas畫圖模糊問題

使用canvas畫圖時,會遇到圖片模糊的問題。
1.可以使用hidpi-canvas-polyfill
舉個栗子

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);

2.先將canvas畫布放大兩倍,後用css3將canvas縮小兩倍,同理可清晰。

<!DOCTYPE html>
<html>
<head> <style> .container{ zoom:0.5;//縮小 } </style> </head> <body> <div class="container"> <canvas id="myCanvas" width="800" height="600"> Your browser does not support the HTML5 canvas tag. </canvas> </div> <script> var c=document.getElementById("myCanvas"
); var ctx=c.getContext("2d"); ctx.scale(2,2);//放大 ctx.beginPath(); ctx.fillStyle="green"; ctx.arc(200,150,100,0,2*Math.PI); ctx.stroke(); ctx.fill();
</script> </body> </html>