【发布时间】:2016-12-21 10:41:33
【问题描述】:
我有分辨率为 1920 * 1080 的显示器。
我正在我的 PC 上尝试这个非常基本的画布 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>
其实输出应该和原图一样,其实不然。
在通过stackoverflow和http://developer.mozilla.org的类似问题后,我了解到它与高度和宽度有关。
如何在任何屏幕尺寸或设备上正确使用 drawimage()?
编辑:测试图像尺寸为 3024 * 4032
我正在尝试使用以下插件实现裁剪和保存功能:http://odyniec.net/projects/imgareaselect/
所以无论从那里返回什么高度和宽度坐标,我都会从原始图像中裁剪该图像并在画布上绘制。
因此,裁剪后的图像必须具有实际分辨率,但显示在较小的预览容器中。
【问题讨论】:
-
您的源“要使用的图像”比 img 标签中显示的分辨率要高得多,所以当您尝试在画布中绘制它时,您需要指定您想要的高度和宽度将其调整为
标签: javascript html canvas