1

只想说,我不使用 CSS,但在小尺寸画布上画圈的质量很差。

例子:jcanvas https://jsfiddle.net/tkdn2rv6/25/

例如,在 konvajs 上一切都很好:konva https://jsfiddle.net/qup9s57y/23/

为什么图像如此模糊? 画布图片 康瓦斯图片

我想使用 jcanvas,因为它的尺寸更小并且使用 jQuery。

4

2 回答 2

1

您必须使用 detectPixelRatio 解决方案:

$('canvas').detectPixelRatio(function(ratio) {
    $('#canvas').drawArc({
    x: 20,  y: 20,  radius: 15,  strokeStyle: '#000',  strokeWidth: 1,
  });
});



var circle = new Konva.Circle({
  x: 20,  y: 20,  radius: 15,  stroke: '#000',  strokeWidth: 1
});

var layer = new Konva.Layer().add(circle);
new Konva.Stage({container: 'container',  width: 40,  height: 40}).add(layer);
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jcanvas/21.0.1/min/jcanvas.min.js"></script>
<script src="https://cdn.rawgit.com/konvajs/konva/2.2.1/konva.min.js"></script>

<div id="container"></div>
<canvas id="canvas"></canvas>

于 2018-09-05T21:11:03.157 回答
0

我试图通过将两者放入一个常见的片段中来重现您的问题,并且质量看起来相同:

$('#canvas').drawArc({
  x: 20,  y: 20,  radius: 15,  strokeStyle: '#000',  strokeWidth: 1,
});

var circle = new Konva.Circle({
  x: 20,  y: 20,  radius: 15,  stroke: '#000',  strokeWidth: 1
});

var layer = new Konva.Layer().add(circle);
new Konva.Stage({container: 'container',  width: 40,  height: 40}).add(layer);
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jcanvas/21.0.1/min/jcanvas.min.js"></script>
<script src="https://cdn.rawgit.com/konvajs/konva/2.2.1/konva.min.js"></script>

<div id="container"></div>
<canvas id="canvas"></canvas>

于 2018-08-13T17:02:58.657 回答