これを示すために簡単な例を書きました。
キャンバスのサイズは 500px * 400px です。私の画像の元のサイズは 200px * 160px で、dpi は 480 です。この画像を元のサイズでキャンバスに表示して、サイズが変更されないようにしたいので、画像がぼやけます。
コードは次のとおりです。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#canvas").width(500);
$("#canvas").height(400);
var canvas = $("#canvas").get(0);
var ctx = canvas.getContext('2d');
var image = new Image();
image.src = "fish01.png"; // size is 200px * 160px
ctx.drawImage(image, 0, 0); // same with ctx.drawImage(image, 0, 0, 200, 160);
});
</script>
</head>
<body style="background-color: #ccc; margin: 0px;">
<canvas id="canvas" style="background-color: #66c"></canvas>
</body>
</html>
元の画像は次のとおりです。
結果は次のとおりです。
キャンバスのサイズが 500px * 400px で、画像のサイズが 200px * 160px であるため、これはおかしいと思いますが、画像がキャンバスの範囲外になるのはなぜですか? そして、画像のサイズが変更されたようです。
元のサイズで画像を表示する方法を知りたいです。アドバイスをお願いします。ありがとう!