Fabric.js 定义图像的边界/限制

2023-12-05

enter image description hereI've set up a fabric.js based t-shirt simulator. Everything works as expected except for one detail that the client would like to get solved, being that disallowing an uploaded image to get past the t-shirt canvas (we could see it as the background image).

我也有 png 和 svg 格式的背景图像,但我该如何实现呢?

EDIT:

根据图像,我希望 T 恤中心的图像不能被拖到红线之外......这将是理想的情况。如果这很难以简单的方式完成,那么如果我可以将图像绑定到蓝线,我会很高兴。

在最后一种情况下,我知道我可以将图像剪辑为矩形,但是,有什么方法可以使图像在到达线条时停止,而不是仅仅在其下方吗?

Thanks


根据康加克斯的建议:

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;
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fabric.js 定义图像的边界/限制 的相关文章

  • 如何从 Chrome 扩展中获取 javascript 重的页面

    我正在开发一个扩展程序 用于获取用户可能在网站上访问的页面 我的扩展使用 jQuery get 来获取页面 这对于像 amazon com 这样的网站来说是正确的 但是 如果用户登录 gmail 并且我尝试获取其他一些页面 例如 帐户设置
  • 在 React 组件中动态创建元素

    我创建了一个辅助函数 当我单击按钮时 它可以在组件中动态创建元素 但是它没有显示我尝试附加到父 div 的 html 的一半 它正确地将标签添加为 html 但其余部分只是纯文本 谁能明白为什么吗 用于动态创建内容的函数 function
  • WinRT 上的 C++、C# 和 JavaScript [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 从下图中可以看出 Windows 8
  • AJAX列表更新,获取新元素并计数

    我有这个 HTML 列表 ul li class username John li li class username Mark li ul 以及通过 AJAX 添加新名称的表单 多个添加以逗号分隔 响应是一个包含名称的列表 name Da
  • 使用 ReactJS 突出显示文本

    我试图突出显示与查询匹配的文本 但我不知道如何让标签显示为 HTML 而不是文本 var Component React createClass highlightQuery function name query var regex ne
  • 如何向 DOM 添加支持 Angular 的元素?

    我想以编程方式添加一些支持 Angular 的 DOM 元素 实际上 我可能需要添加自定义组件 我该怎么做 这是一个简单的小提琴来演示这个问题 http jsfiddle net ZJSz4 2 http jsfiddle net ZJSz
  • jQuery:当使用 on .scroll 事件和警报时,firefox 似乎无限循环

    我的主模板之一中有以下 jQuery 代码 document scroll function var scroll top document scrollTop alert scroll top if scroll top lt 70 fi
  • Javascript:一般访问函数参数

    这是我所拥有的 var log function arg1 arg2 console log inside arg1 arg2 var wrap function fn return function args console log be
  • Jquery 选择器中的冒号

    我最近将 jquery 从 1 4 更新到 2 1 并开始出现错误 在我的代码中 我有一部分通过 id 选择元素 jQuery id name 这会产生一个错误 但是之前没有错误 1 4 如果我转义冒号 错误就会消失 他们在最新版本中添加了
  • Javascript 搜索并替换包含方括号的字符序列

    我正在尝试在字符串 Nationality EN ESP 中搜索 EN 我想从字符串中删除它 所以我使用替换方法 代码示例如下 var str Nationality EN ESP var find EN var regex new Reg
  • 如何更改 angularjs $http.jsonp 的标头

    我读了document http docs angularjs org api ng 24http 但我想我一定是误解了 http defaults headers jsonp Accept application json http js
  • Mustache.js 只允许换行,转义其他 HTML

    我正在根据用户输入创建评论 并在用户单击 提交 后使用 Mustache js 渲染它们 我意识到我可以替换用户输入换行符 n with br 呈现为 HTML 中断 例如 myString replace n g br 我意识到我可以使用
  • 如何根据父网格的标题复选框选择/取消选择所有子复选框

    我正在开发一个 Web 应用程序 其中包含嵌套在另一个数据网格中的数据网格 在父网格中 我在标题模板中有一个复选框 在子网格中的项目模板中有另一个复选框 功能是 1 如果我单击父复选框 则应检查子网格中的所有项目 反之亦然 2 我的子网格中
  • 时间序列折线图与轴不同步

    本实验基于这个d3官方例子 http bost ocks org mike path 我想要实现的是可视化时间序列数据的最后 x 分钟 我有这个代码的副本jsfiddle http jsfiddle net 225dC 3 单击以添加新数据
  • 如何使用 JavaScript 使 DIV 可见和不可见?

    你能做类似的事情吗 function showDiv DIV visible true or something 如果 DIV 是一个元素那么 DIV style visibility visible OR DIV style visibi
  • 如何在 AngularJS 中设置选择选项中的文本格式?

    我有以下 json 对象 scope values id 2 code Code 1 name Sample 1 id 4 code Code 2 name Sample 2 id 7 code Code 3 name Sample 3 在
  • Django pbkdf2_sha256 JS 实现

    我有一个来自 django 的数据库 我想从 Node js 中使用它 我有一个任务 验证用户身份 从数据库可知 算法 pbkdf2 sha256 salt 10000 次迭代和 base64 编码的哈希值 我必须在 JS 中执行哪些步骤才
  • 以编程方式访问使用数据 URI 作为源的 iframe

    我正在使用 数据 URI 以编程方式创建一个 iframe 该框架加载良好 但似乎以编程方式使用 iframe 会遇到跨域安全检查 var iframeDoc document getElementById myFrame contentW
  • jquery ui 自动完成添加跨度

    我在 div 上使用 jQuery 自动完成 但我得到了 jquery 自动添加的额外范围 span class ui helper hidden accessible search test span 如何防止创建此跨度 我通过添加 CS
  • 为什么事件属性不容易获取?

    我有以下代码 HERE https jsfiddle net 5n2zagjc 2 是可编辑的示例 用法 在输入字段中键入并观看控制台 function test event let keys Object keys event let k

随机推荐

  • Android Studio NDK 错误,无法找到 GLES3/gl3.h,尽管它存在

    我正在尝试在 Android Studio 上制作一个使用 NDK 和 OpenGL ES 3 0 的应用程序 当我 include 时 IDE 在我输入时会自动完成 我认为这是一个标志 意味着 IDE可以找到它 但是 我收到错误 错误 2
  • python 使用带请求的 multipart/form-data 为 POST 设置边界

    我想使用请求发送文件 但服务器使用固定边界设置 我只能发送文件 但requests模块创建一个随机边界 我该如何覆盖它 import requests url http xxx xxx com uploadfile php fichier
  • 是否可以提供一种将对象转换为角度模板字符串的隐式方法?

    假设我有一些具有相同原型的对象 并且我想在 Angular 模板中自定义它们的显示 我知道我可以创建自己的过滤器 然后像这样使用它 p anObjectOfProtoP myCustomFilter p 或附加到 scope 的函数 p m
  • 外键参考复合主键

    该数据库将存储有关硬件设备及其收集的数据的信息 我创建了一个设备表来存储可用的硬件设备 CREATE TABLE IF NOT EXISTS devices deviceID int 10 unsigned NOT NULL AUTO IN
  • 新窗口句柄在 IE 中消失,无法切换到新窗口

    我在 Internet Explorer 10 中使用最新版本的 Selenium 2 37 0 和 C 使用最新的 32 位 InternetExplorerDriver 2 37 0 登录网页 单击打开新窗口的按钮 然后然后将焦点更改到
  • CSS渐变产生虚线

    我需要打印 textarea 内容 用户输入 我只是使用 css 渐变在文本下方生成线条 下面的 css 对我来说很有效 linedText color 000000 line height 24px background color ff
  • C# 线程安全与 get/set

    这是 C 的详细问题 假设我有一个带有对象的类 并且该对象受锁保护 Object mLock new Object MyObject property public MyObject MyProperty get return proper
  • 画布中的模糊 svg

    为什么 SVG 在画布中无法正确缩放 全是像素化且模糊 我究竟做错了什么 我想要的只是 SVG 图像无论画布大小如何都能保持其纵横比 并且不会变得模糊 var canvas document getElementById screen ct
  • 根据填充颜色索引删除行

    我正在尝试删除范围内的所有行A7 AI300包含黄色填充的单元格 颜色索引 6 我有一些代码将删除包含该颜色的所有行 但我遇到的问题是它正在尝试运行整个工作表的代码并将冻结我的工作簿 我正在尝试插入一个范围以加快计算速度 谁能告诉我如何插入
  • 每个 Pandas 数据框行的词频

    我正在尝试找出如何获取每个数据帧行中最常见的单词 比如说前 10 个最常见的单词 我的代码可以获取整个 DF 中最常见的单词 但现在我需要更精细 import pandas as pd import numpy as np df1 pd r
  • 实体框架 4 未关闭 sql server 2005 profiler 中的连接

    我第一次在 ASP net 应用程序中使用实体框架 4 我想确保数据库连接在离开using语句后关闭 但是 在SQL Server 2005分析器中 我在离开using时看不到连接注销 只能看到输入时的登录 例如 我从一个空白的 asp n
  • 在 Matlab 中生成矩阵的所有可能组合

    知道该矩阵的元素只能是 0 或 1 如何生成 N M 矩阵的所有可能值 例如 如果我想要一个 2 2 矩阵 我们会得到 16 个具有不同可能组合的矩阵 0 0 0 0 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 等 Us
  • 绝对真实的居中背景图像

    我有一个网站 其中居中的背景图像在主页动画中起着至关重要的作用 背景会一直居中 直到浏览器窗口无法适应网站的宽度 此时背景会左对齐 这是我的身体代码 body line height 1 margin 0px auto padding 0p
  • Kivy 错误:[严重] [应用程序] 无法获取窗口,中止

    我看到的针对这个 Kivy 错误的所有解决方案对我来说都不起作用 现在已经过去两周多了 但我所有的努力都白费了 我使用 python 3 6 4 kivy 1 10 1 pycharm 作为我的 IDE 和 Windows 10 这是错误代
  • Angular – 通过提交表单将组件的新实例添加到显示中,动态加载同一组件的多个实例

    问题更新链接 Problem 我试图动态加载同一组件的多个实例 当用户提交表单时 新组件会添加 加载到屏幕上 其背后的想法是 用户可以提供表单的详细信息 然后将其显示在所创建的组件的特定实例上 我最初的想法是拥有某种数据结构 例如键对值的数
  • JOOQ:使用字符串获取表和列?

    您好 我正在将 JOOQ 与 Spring Boot 结合使用 想知道是否有办法获取表及其列及其名称字符串 例如 我希望能够通过执行以下操作来获得一张桌子 someObject getTable user 然后使用该 get 方法的结果 我
  • Vagrant 错误:无法在 Linux 来宾中挂载文件夹

    我对 Vagrant 共享文件夹有一些问题 我的基本系统是 Ubuntu 13 10 桌面 我不明白为什么我会出现此错误 是配置不正确吗 是 NFS 问题还是 Virtualbox Guest Additions 问题 我尝试过使用不同的许
  • 当用户尝试在 vb6 中打开新实例时返回到已打开的应用程序

    假设用户将我的 Visual Basic 应用程序最小化到任务栏通知图标 现在我希望当用户打开一个新实例时 旧实例应该恢复 通常 创建单实例应用程序的策略是在应用程序初始化中添加一些代码来确定实例是否已在运行 如果是 它会获取主窗口的句柄
  • 对 d3.js 堆积条形图进行排序

    目前这个堆积条形图根据每个条形的总计从左到右排序 我还如何对每个单独的条形图进行排序 而不是按键对每个单独的条形图进行排序 即 5 岁以下位于底部 65 岁及以上位于顶部 而是按值 最大 对每个单独的条形图进行排序位于底部 最小位于顶部 例
  • Fabric.js 定义图像的边界/限制

    I ve set up a fabric js based t shirt simulator Everything works as expected except for one detail that the client would