gpt4 book ai didi

javascript - Fabric.js 为图像定义边界/限制

转载 作者:行者123 更新时间:2023-11-29 18:21:05 26 4
gpt4 key购买 nike

enter image description here我已经设置了一个基于 fabric.js 的 T 恤模拟器。除了客户希望解决的一个细节外,一切都按预期进行,即不允许上传的图像越过 T 恤 Canvas (我们可以将其视为背景图像)。

我也有 png 和 svg 格式的背景图片,但我该如何完成?

编辑:

根据图片,我希望 T 恤中间的图片不会被拖出红线...这才是理想的场景。如果这很难以简单的方式做到,如果我能将图像绑定(bind)到蓝线,我会很高兴。

在最后一种情况下,我知道我可以将图像剪裁成矩形形式,但是,有什么方法可以让图像在碰到线时停止,而不是仅仅在线下方?

谢谢

最佳答案

根据kangax的建议:

canvas.on ("object:moving", function (event) {
var el = event.target;

// suppose el coords is center based

el.left = el.left < el.getBoundingRectWidth() / 2 ? el.getBoundingRectWidth() / 2 : el.left;
el.top = el.top < el.getBoundingRectHeight () / 2 ? el.getBoundingRectHeight() / 2 : el.top;

var right = el.left + el.getBoundingRectWidth() / 2;
var bottom = el.top + el.getBoundingRectHeight() / 2;

el.left = right > canvas.width - el.getBoundingRectWidth() / 2 ? canvas.width - el.getBoundingRectWidth() / 2 : el.left;
el.top = bottom > canvas.height - el.getBoundingRectHeight() / 2 ? canvas.height - el.getBoundingRectHeight() / 2 : el.top;
});

关于javascript - Fabric.js 为图像定义边界/限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744506/

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