私はキャンバス要素を使って非常に単純な矩形を作った。しかし、fillRect(x、y、width、height)のxとyの引数が0と0以外の値であれば、ズームや携帯端末ではすべてのエッジが完全にぼやけて見えます。 xとyがARE 0と0の場合、四角形の上端と左端は、ズームインされていても、下端と右端がぼやけていてもスーパー定義されます。 Chrome/Firefoxを使用した1920x1080の画面と、Safariを使用した750x1334のモバイル画面でこれをレンダリングしています。HTML5キャンバスでぼやけた形状のエッジを修正するにはどうすればよいですか?
これはデスクトップでは100%ズームでは問題ありませんが、モバイルデバイスではクラップスのように見えます。また、ChromeとFirefoxだけでなく、JSFiddleを完全に拡大すると、ぼやけたエッジがはっきりと確認できます。私はCSSを使ってキャンバスの幅と高さを調整していません。これはキャンバスの属性やJSを使って行われます。これをブラウザでテストするために使用したHTMLは以下のとおりです。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
</head>
<body>
<canvas id="gameCanvas" width="150" height="150">A game.</canvas>
<script>
var canvas = document.getElementById("gameCanvas");
var ctx = canvas.getContext("2d");
ctx.fillRect(0, 0, 100, 100);
</script>
</body>
</html>
編集:1ピクセルの線を描画しようとしていません。私は半分のピクセル値でも試してみましたが、ぼやけたエッジを悪化させました。
最初の2つのスクリーンショットは、SafariのiPhone 7スクリーンからのものであり、ズームされていないものとズームされていないものです。最後のスクリーンショットは1920x1080のラップトップ画面で、Chromeで拡大表示されます。
の可能性のある重複[線状キャンバス図面は、ぼやけている(http://stackoverflow.com/questions/8696631/canvas-drawings -like-lines-are-blurry) –
私は半分のピクセル値で実験を試みましたが、それだけでそれらをさらに悪化させました。そして私は1ピクセルの線を描画していない、私は長方形を描画しています。 – Pearu
http://stackoverflow.com/q/28057881/215552同じ修正。 –