保存大于物理屏幕的画布

时间:2013-07-30 11:21:08

标签: javascript canvas html5-canvas

我正在通过画布动态绘制平面图,您可以向上/向下/向左/向右滚动,但我想保存平面图的整个图像以供其他用途。我知道我可以缩放平面图并捕捉图像,但我需要它的分辨率高于我拍摄的实际屏幕。

我目前正在使用FileSaver.js将画布保存为位图,因为它非常简单。

A little illustration of what I'm thinking

这可能吗?

2 个答案:

答案 0 :(得分:1)

没有更多信息很难分辨,但你可以创建一个更大的画布(你需要它的大小)并让它隐藏起来。然后,当您想要捕获时,将所有内容重新绘制到该画布中并从中保存图片而不是显示的图片。

答案 1 :(得分:1)

所以你不需要保存画布,而是保存图像 我不知道您的FileSaver.js,但如果它无法直接保存图像, 将图像放入新画布很容易:

 function getCanvasFromImage(img) {
    var cv = document.createElement('canvas');
    cv.width = img.width;   cv.height = img.height;
    cv.getContext('2d').putImage(img, 0, 0);
    return cv;
 }