gpt4 book ai didi

javascript - 重新创建 Fabric.js Canvas 并导出为图像?

转载 作者:太空狗 更新时间:2023-10-29 14:53:31 30 4
gpt4 key购买 nike

我有一个 Canvas ,用户可以在其中使用他们单击的另一个 div 中的图像创 build 计,将其发送到 Fabric.js Canvas ,在那里它可以四处移动等等。由于 Canvas 的大小为 width="270"height="519",比成品小,我需要用具有大小 width="1001"height="1920" 然后截图,这样我就可以在一张图片中得到所有内容。我该怎么做?

到目前为止,这是我的代码的样子:

HTML

<div id="CanvasContainer">
<canvas id="Canvas" width="270" height="519"></canvas>
</div>

CSS

#CanvasContainer {
width: 270px;
height: 519px;
margin-left: 15px;
}
#Canvas {
overflow: hidden;
}

JavaScript

//Defining Canvas and object array
var canvas = new fabric.Canvas('Canvas');

//When clicked
$(document).ready(function () {
$("#Backgrounds img").click(function () {
var getId = $(this).attr("id");

//adding all clicked images
var imgElement = document.getElementById(getId);
var imgInstance = new fabric.Image(imgElement, {
left: 135,
top: 259,
width: 270,
height: 519
});
//Corner color for clicked images
imgInstance.set({
borderColor: 'white',
cornerColor: 'black',
transparentCorners: false,
cornerSize: 12
});
canvas.add(imgInstance);
});
});

最佳答案

Fabric 有一个内置函数可以转换为数据 url。您可以使用链接的下载属性使该链接成为下载链接。最后,您可以使用 DOM click() 函数来模拟点击下载链接。最终结果是:

function download(url,name){
// make the link. set the href and download. emulate dom click
$('<a>').attr({href:url,download:name})[0].click();
}
function downloadFabric(canvas,name){
// convert the canvas to a data url and download it.
download(canvas.toDataURL(),name+'.png');
}

现在当你想下载 Canvas 时调用

downloadFabric(canvas,'<file name>');

关于javascript - 重新创建 Fabric.js Canvas 并导出为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032214/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com