我有一个表单,允许用户上传图片。
当图片加载完成后,我们会在canvas上对其进行缩放以减小文件大小,然后将其传回服务器。
为此,我们将图片放置在画布上并在那里进行操作。
以下代码将以320 x 240像素的大小在画布上呈现缩放后的图像:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height)
...其中canvas.width和canvas.height是图像高度和宽度,乘以一个基于原始图像大小的缩放因子。
但当我尝试使用该代码时:
ctx.drawImage(img, 0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height
在画布上我只能看到图片的一部分,例如左上角。我需要将整张图片按比例缩放以适应画布,即使实际图片大小大于320x240的画布大小。
因此,对于上面的代码,宽度和高度为1142x856,因为那是最终图像大小。我需要保持该尺寸,在提交表单时将其传回服务器,但只希望用户在画布上看到一个较小的视图。
我错过了什么?请问有人可以指点我吗?