【发布时间】:2016-12-01 05:20:40
【问题描述】:
Step1) 我正在使用 drawImage(image,0,0); 将 1920*1080 的图像绘制到 canvas1;
setp2) 现在我正在拍摄另一张徽标图像并将其绘制到另一个名为 canvas2 的画布上,并使用 drawImage(logo,0,0);
我使用fabricjs 来实现徽标可拖动和可调整大小的功能。
Step3) 然后我将 canvas1 和 canvas2 绘制到另一个名为 canvas3 的画布上并下载它。
在这种情况下,一切都很好,除了图像显示大(1920*1080)。为了用户体验,我使用了图像调整大小的方法来缩小图像并显示在 900*500 的画布中。但是当我下载时,我应该得到带有徽标的 1920*1080 的原始画布。但我得到 900*500 的标志。
任何人都可以在这方面提供帮助
调整大小的代码
这里的实际宽度和实际高度是背景图像的宽度和高度
function ImageResize(){
var d_canvas = document.getElementById('canvas');
var context = d_canvas.getContext('2d');
var background = document.getElementById('background');
var wrh = realWidth / realHeight;
newWidth = d_canvas.width;
newHeight = newWidth / wrh;
if (newHeight > d_canvas.height) {
newHeight = d_canvas.height;
newWidth = newHeight * wrh;
}
context.drawImage(background,0,0, newWidth , newHeight);
}
【问题讨论】:
-
下载步骤是如何实现的?
-
link.href = document.getElementById(canvasId).toDataURL();这里的canvasId是带有logo的图片的canvas id
-
你如何调整大小?
-
这里的实际宽度和实际高度是背景图像的宽度和高度函数 ImageResize(){ var d_canvas = document.getElementById('canvas'); var context = d_canvas.getContext('2d'); var background = document.getElementById('background'); var wrh = realWidth / realHeight; newWidth = d_canvas.width;新高度=新宽度/wrh; if (newHeight > d_canvas.height) { newHeight = d_canvas.height;新宽度 = 新高度 * wrh; } context.drawImage(background,0,0, newWidth , newHeight); }
-
如果您需要详细信息,请访问我的网站:cricmovie.com/bbb-imagecrop
标签: javascript jquery css canvas html5-canvas