Canvas drawings, like lines, are blurry

前端 未结 10 950
野的像风
野的像风 2020-11-27 15:15

I have a

and canvas, which is drawn using:

context.lineWidth = 1;
context.strokeStyle = \"gray\         


        
10条回答
  •  春和景丽
    2020-11-27 15:37

    As @langpavel mentioned in a comment, the Mozilla website has example code for how to correct resolution in a canvas: https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio

    var canvas = document.getElementById('canvas');
    
    var ctx = canvas.getContext('2d');
    
    // Set display size (css pixels).
    var size = 200;
    canvas.style.width = size + "px";
    canvas.style.height = size + "px";
    
    // Set actual size in memory (scaled to account for extra pixel density).
    var scale = window.devicePixelRatio; // Change to 1 on retina screens to see blurry canvas.
    canvas.width = size * scale;
    canvas.height = size * scale;
    
    // Normalize coordinate system to use css pixels.
    ctx.scale(scale, scale);
    
    ctx.fillStyle = "#bada55";
    ctx.fillRect(10, 10, 300, 300);
    ctx.fillStyle = "#ffffff";
    ctx.font = '18px Arial';
    ctx.textAlign = 'center';
    ctx.textBaseline = 'middle';
    
    var x = size / 2;
    var y = size / 2;
    
    var textString = "I love MDN";
    ctx.fillText(textString, x, y);
    

提交回复
热议问题