Что я пытаюсь сделать, это изначально загрузить изображение, которое остается статичным, и если входные данные файла изменяются, изображение загружается, помещается на холст, должно находиться за изначально загруженным изображением и быть подвижным, вращаемым, изменяемым размером.Моя первая проблема заключалась в том, что image.sendToBack () ничего не делал - я исправил это, установив для первоначального параметра preserveObjectStacking значение true - это работало, но теперь изображение можно изменять, поворачивать, но нельзя перемещать.
import { fabric } from "fabric";
(function($) {
var imageLoader = document.getElementById('imageLoader');
var canvas = document.getElementById('imageCanvas');
imageLoader.addEventListener('change', handleImage, false);
function handleImage(e) {
var reader = new FileReader();
reader.onload = function (event){
var imgObj = new Image();
imgObj.src = event.target.result;
imgObj.onload = function () {
var image = new fabric.Image(imgObj);
image.set({
angle: 0,
padding: 10,
cornersize:10,
height:110,
width:110,
});
// canvas.centerObject(image);
canvas.add(image);
canvas.sendToBack(image);
image.setCoords();
canvas.renderAll();
}
}
reader.readAsDataURL(e.target.files[0]);
}
var canvas = new fabric.Canvas('imageCanvas', {
preserveObjectStacking: true
});
canvas.setWidth(300);
// overlayImage
fabric.Image.fromURL('/../img/meinbild_leer_300x600.png', function(oImg) {
oImg.scaleToWidth(300);
canvas.add(oImg);
}, {hasControls: false, selectable: false});
})(jQuery);
то, что я пробовал, основываясь на документации и других публикациях stackoverflow - я добавил image.setCoords () после sendToBack-Call, который фактически не привел к каким-либо изменениям.ребята, у вас есть какой-нибудь совет для меня?работая в первый раз с тканью, и я серьезно застрял прямо здесь.спасибо и хорошего.
edit: я попытался добавить selected: true в image.set, но это ничего не изменило.
дополнительная информация: im usingверсия Fabricjs ^ 2.4.2-b