【发布时间】:2014-05-31 00:56:16
【问题描述】:
我有一个允许用户上传图片的表单。
加载图像后,我们会对其进行一些缩放,以便在将其传回服务器之前减小其文件大小。
为此,我们将其放置在画布上并在那里进行操作。
此代码将在画布上渲染缩放后的图像,画布大小为 320 x 240px:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height)
... 其中 canvas.width 和 canvas.height 是图像高度和宽度 x 基于原始图像大小的缩放因子。
但是当我去使用代码时:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height
...我只得到画布上的部分图像,在这种情况下是左上角。尽管实际图像尺寸大于 320x240 画布尺寸,但我需要将整个图像“缩放”以适合画布。
所以对于上面的代码,宽度和高度都是 1142x856,因为这是最终的图像尺寸。在提交表单时,我需要保持该大小以传递给服务器,但只希望在用户的画布中显示一个较小的视图。
我在这里缺少什么?谁能指出我正确的方向吗?
非常感谢。
【问题讨论】:
标签: javascript html canvas html5-canvas