javascript - 仅保存 HTML Canvas 的特定部分

标签 javascript html canvas

是否可以只保存或导出 Canvas 的特定部分而不是整个 Canvas ?

http://i.stack.imgur.com/hmvYh.jpg

目前,当我保存文件时,我得到了网站上整个 Canvas 元素的合成加上透明背景(在上面的示例中为浅蓝色)。我想得到的只是灰色区域(可以由多个图像和文本元素组成)。

最佳答案

是的,你可以。这是 the JSFiddle .

首先,您需要对 Canvas 中的图像进行剪辑。这很简单。我制作了另一个 Canvas (一个隐藏的 Canvas )并使用了 context.drawImage

var hidden_ctx = hidden_canvas.getContext('2d');

hidden_ctx.drawImage(
    MainCanvas,
    startClippingX,
    startClippingY,
    clippingWidth,
    clippingHeight,
    pasteX,
    pasteY,
    pasteWidth,
    pasteHeight
);

现在,我们需要此 Canvas 的数据 URL,以便我们可以下载内容。为此,我们将使用 canvas.toDataURL 方法。

var data_url = hidden_canv.toDataURL("image/png");

现在,我们需要做的就是制作一个下载链接(一个带有 data_urlhref 属性的 a 元素),然后我们完成了!

关于javascript - 仅保存 HTML Canvas 的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256567/

相关文章:

jQuery - jCarouselLite - 图片不显示

javascript - JS 每 X 秒更新一次 Canvas 动画

javascript - 等到canvas.toBlob()完成?

javascript - 启用/禁用表单元素并一次更改按钮的值?

javascript - 隐藏下拉列表中的值并在选择另一个值时将其添加回来

javascript - 在 Bootstrap header 内的搜索栏旁边添加按钮

javascript - 如何将一个div元素的高度设置为与另一个div相同

javascript - 使用 jquery ajax 进行复选框过滤

javascript - 循环遍历 JSON 数据以生成 HTML

javascript - Canvas 上的 SVG 路径位置