11

I have example: https://developer.mozilla.org/samples/canvas-tutorial/4_5_canvas_linewidth.html But first line is not equals 1 pixel: enter image description here How can i fix this? (browser Google Chrome)

Glebka
  • 1,420
  • 3
  • 20
  • 37

2 Answers2

22

Always add 0.5 pixel to the position of your line to prevent the anti-aliasing.

https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Applying_styles_and_colors#A_lineWidth_example

Chris Porter
  • 3,627
  • 25
  • 28
chris_b
  • 1,294
  • 1
  • 12
  • 12
4

To make life easier you can move the whole canvas by 0.5px:

var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.translate(0.5, 0.5); // Move the canvas by 0.5px to fix blurring

It prevents anti-aliasing on all graphics, except images, so you'll have to use +0.5px only for images.

Yakovenko Max
  • 327
  • 2
  • 6