javascript - HTML5 Canvas : image resizing

标签 javascript image html canvas

我正在尝试将图像放置在 Canvas 上而不调整其大小。我认为 drawImage(img, x, y) 可以解决问题,但它会拉伸(stretch)图像以填充 Canvas 。 另外,为 drawImage(img, x, y, width, height) 提供我的图像尺寸似乎不起作用。

这是我的代码:

<canvas id="story" style="position:relative; width:800px; height:600px;"></canvas>

<script type="text/javascript">

window.onload = function() {
  var canvas = document.getElementById("story");
  var context = canvas.getContext("2d");
  var img = document.getElementById("img1");
  var width = parseInt(img.width);
  var height = parseInt(img.height);
  context.drawImage(img, 0, 0, width, height);
}

</script>
<img id="img1" alt="" src="http://link to image"/>

提前致谢!

PS:我添加了 parseInt 以确保 drawImage 获得有效值。

最佳答案

不要使用 CSS 来调整 Canvas 的大小。这会创建一个默认大小的 Canvas 并拉伸(stretch)它。直接在其上设置 Canvas 尺寸,您将获得 1 到 1 像素的绘图空间。

<canvas id="story" width="800" height="600" style="position:relative;"></canvas>

关于javascript - HTML5 Canvas : image resizing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166645/

相关文章:

javascript - 使用 JavaScript 或 CSS 缩放每一行中的图像以 100% 填充它

javascript - JQuery 在 div 中查找和替换

javascript - Google Plus 图片缓存

android - 动嘴动画

html - CSS 工具提示被垂直滚动条截断。

html - 拉伸(stretch) div 和图片以填充完整的部分 ID,部分 ID ="Matches"是问题

javascript - 带有 AgeDifference 的 if 语句未正确计算最接近的年龄

javascript - ember-simple-auth 的 Ember cli 错误

iphone - 如何使用 GeoLocation 在 map 上定位标记?

html - 小窗口时白 block 右下角