사용자가 디자인을 만들기 위해 이미지를 이동할 수있는 Fabric.js를 사용하는 캔버스가 있습니다. 이미지 편집기에서 다시 만들 수 있도록 개별 개체에서 모든 데이터를 가져 오려면 어떻게해야합니까?
캔버스는 다음과 같습니다.
HTML
<div id="CanvasContainer">
<canvas id="Canvas" width="270" height="519"></canvas>
</div>
자바 스크립트
//Defining Canvas and object array
var canvas = new fabric.Canvas('Canvas');
var canvasObject = new Array();
//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);
});
});
$(document).ready(function () {
$("#Extras 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);
});
});
//SideOptions------------
function deleteObject(){
canvas.remove(canvas.getActiveObject());
}
function layerUpObject(){
canvas.bringForward(canvas.getActiveObject());
}
function layerDownObject(){
canvas.sendBackwards(canvas.getActiveObject());
}
function layerTopObject(){
canvas.bringToFront(canvas.getActiveObject());
}
function layerBottomObject(){
canvas.sendToBack(canvas.getActiveObject())
}
감사 :)
편집 : 기본적으로 src, 위치, 배율, 회전을 원합니다. 내가 생각하는 다른 데이터도 좋을 수 있지만 그 4가 가장 중요합니다.
방법 toObject()
과 toJSON()
.
봐 여기에 캔버스를 직렬화하는 방법.
예:
var canvas = new fabric.Canvas('c');
JSON.stringify(canvas); // '{"objects":[],"background":"rgba(0, 0, 0, 0)"}'
// or
// JSON.stringify(canvas.toJSON());
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다