画布中的矩形具有柔软的边缘

416*_*577 4 html javascript css canvas

我有一个黄色的画布,里面画了一个红色的矩形.但是,我注意到一个有趣的效果 - 边框上的矩形的两边有非常明确的边缘,而黄色画布内部的矩形的两边是"软化"或"模糊".

这就是我现在拥有的: 有趣的矩形

我的HTML:

<canvas id="myCanvas"> 
</canvas>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var canvas=document.getElementById("myCanvas");
var ctx=canvas.getContext("2d");
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);
Run Code Online (Sandbox Code Playgroud)

CSS:

#myCanvas {
    background-color:#FFFF00;
    width:1000px;
    height:600px;
    border: none;
    margin-left:auto;
    margin-right:auto;
}
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE

为什么会这样?我怎样才能使矩形的所有四边都非常精确和定义?谢谢.

ane*_*tri 8

您应该像这样设置画布大小:

<canvas id="myCanvas" width="1000" height="600"></canvas>
Run Code Online (Sandbox Code Playgroud)

这是演示

或者来自javascript:

var canvas = document.getElementById("myCanvas");
canvas.width  = 1000;
canvas.height =  600;
Run Code Online (Sandbox Code Playgroud)

从CSS设置大小只是缩放画布,这不是你想要的!

  • 这也解释了矩形的过大尺寸.谢谢!:) (2认同)