我的显示器分辨率为 1920 * 1080。
我正在我的电脑上尝试这个非常基本的画布drawimage()代码。
<!DOCTYPE html>
<html>
<body>
<p>Image to use:</p>
<img id="scream" width="220" height="277"
src="test.jpg" alt="The Scream">
<p>Canvas:</p>
<canvas id="myCanvas" width="240" height="297"
style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
window.onload = function() {
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10);
};
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
实际上输出应该与原始图像相同,但事实并非如此。
在浏览了 stackoverflow 和http://developer.mozilla.org上的类似问题后,我明白它与高度和宽度有关。
如何针对任何屏幕尺寸或设备正确使用drawimage()?
编辑:测试图像尺寸为3024 * 4032
我正在尝试使用以下插件实现裁剪和保存功能: http: //odyniec.net/projects/imgareaselect/
因此,无论从那里返回什么高度和宽度坐标,我都会从原始图像中裁剪该图像并在画布上绘制。
因此,裁剪后的图像必须具有实际分辨率,但显示在较小的预览容器中。