javascript - 带有过滤器的背景图像未拉伸到画布的全宽-fabric.js
问题描述
我正在使用fabric.js。我正在将背景图像加载到画布中,并且图像没有拉伸。如果我只上传图像一切都很好,当我向背景图像添加过滤器时,背景图像不会拉伸到画布的整个宽度。
加载图像后,我尝试添加过滤器。还尝试删除背景并再次加载,一切都将转到同一个地方......图像没有拉伸。
这是一个只有背景图像的小提琴:
`https://jsfiddle.net/Music/6mcf4kj0/2/`
这是背景图像和过滤器的小提琴:
`https://jsfiddle.net/Music/q30cfwL7/1/`
我希望图像是画布的全宽和全高。
解决方案
您的图像为 3000x3000,对于默认的 fabric.js 设置来说太大了。从过滤器文档:
图片将绘制在 2048x2048 大小的图块上,较大的图片不适合。设置为 2408 的 fabric.textureSize 是一个安全限制。大多数硬件将支持 4096,因此 4096x4096 是一个可能会起作用的限制,并且可以减少您的麻烦。请记住,画布也有最大尺寸。如果你支持像 IE11 这样的浏览器,无论你的 webgl 硬件有什么能力,你可能会遇到尺寸大于 5000 的画布的问题。
在应用过滤器之前试试这个:
fabric.textureSize = 4096
您还可以检查是否支持 Webgl 然后应用
if (fabric.isWebglSupported()) fabric.textureSize = 65536;
推荐阅读
- delphi - Delphi RAD Server 引发 registercomponents 调用错误
- sql - PySpark 枢轴作为 SQL 查询
- flutter - 带有阴影的 textFormField 边框
- r - R中跨日期和时间组合的不同连续时间事件的总时间
- nattable - NatTable 示例中是否有任何 API 在单击查看源链接时显示源代码?
- amazon-web-services - 我们如何在 Cloudformation 模板中将相同的标签用于两个 AWS::DynamoDB::Table
- javascript - 剑道编辑器附带的格式下拉列表未正确显示。仅在没有空间向下打开时显示
- android - 如何在不使用 ConstraintLayout 中的边距属性的情况下相对于屏幕宽度设置 2 个视图之间的空间
- python - 尝试使用 Python 将栅格重新分类为无数据时出错
- git - 调用`git-push`时如何抑制`git-count-objects`的输出?