首页 > 解决方案 > 由于“最大纹理大小”,FabricJS 无法将过滤器应用于大图像

问题描述

我可以通过一些帮助来理解面料的含义:最大纹理尺寸:16,384 - 16,384 什么?我使用的图像是 5MP (2560 x 1920) 并尝试对图像应用过滤器,如下所示:

object.filters.push(new fabric.Image.filters.Sepia());
object.applyFilters();

图像对象消失,上面的消息出现在控制台中。如果图像< 2MP,我似乎只能对图像应用过滤器,这根本不理想。我真的不知道最大纹理大小是什么意思。

那么这是什么意思,我怎样才能让它允许更大尺寸图像上的过滤器呢?

标签: fabricjsfabricjs2

解决方案


您可以根据为用户机器检测到的最大 textureSize 设置 Fabric 的 alotted textureSize,方法是运行:

 if (fabric.isWebglSupported()) {
            fabric.textureSize = fabric.maxTextureSize;
 }

请注意,运行fabric.isWebglSupported()似乎是计算所必需的fabric.maxTextureSize。否则,它将返回未定义。


推荐阅读