javascript - Canvas只保存部分图像并将其奇怪地拉伸(stretch)

标签 javascript jquery html canvas html5-canvas

我之前已经成功地使用了 Canvas ,但是我以前使用过的相同代码突然只绘制了图像的一部分。

Fiddle here.

HTML:

<canvas id="card-texture-canvas"></canvas>
<img src="http://i.imgur.com/VaN8wBY.png" id="background">
<button class="save">Save</button>

JS:

$('.save').click(function () {
    var d_canvas = document.getElementById('card-texture-canvas')
    var context = d_canvas.getContext('2d')
    var background = document.getElementById('background')
    context.drawImage(background, 0, 0)
    $('#background').hide()
})

通过 CSS,我强制它具有正确的宽度和高度:

#card-texture-canvas {
    height: 297px;
    width: 200px;
}

但是图像的绘制完全忽略了这一点,而是保存了图像的右上角部分,将其拉伸(stretch)到一个奇怪的比例(300x150;仍然不是我试图在CSS中建立的),并将其保留在那...

我做错了什么?

最佳答案

标准 Canvas 尺寸为 150x100,CSS 会将其拉伸(stretch)至所需尺寸,但其上仍具有 150x100 个绘图点,因此您必须内联设置其尺寸

<canvas width="297" height="200"></canvas>

或使用 JavaScript:

document.getElementById('card-texture-canvas').width = 297
document.getElementById('card-texture-canvas').height = 200

关于javascript - Canvas只保存部分图像并将其奇怪地拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448538/

相关文章:

javascript - 日期作为日期选择器中的类

javascript - jQuery 在渲染元素后停止监听点击

javascript - 如何在验证时从选择字段中删除类错误

javascript - 如何在 Google Chrome 中使用 iframe 查看包含 JQuery 的网页

javascript - 带右边框的 CSS - 嵌套

javascript - 如何为动态添加的表格单元格添加样式?

javascript - jQuery - 根据屏幕宽度将像素添加到高度

javascript - 当图像发生变化时如何调用 jQuery 函数?

javascript - Bootstrap 模型有问题吗?

JavaScript 应用 CSS3 渐变