1

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

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

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

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

4

2 回答 2

1

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

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

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

于 2019-07-20T01:49:33.340 回答
0

我通过使用织物 js 的混合滤色器遇到了这个问题,我发现它是由我给画布上照片的方式引起的,检查一下,也许它也适合你。(注意:当我尝试这个过滤器不适用于 svg 格式......我将它用于 png 和 jpg ,代码基于 javascript)

    fabric.Image.fromURL(require("../../assets/mockup/100.png"), (img) => {
  canvas.add(img);
  img.scaleToWidth(canvas.getWidth());
  img.scaleToHeight(canvas.getHeight());
  img.filters.push(filter);
  img.applyFilters();
  canvas.renderAll();
});
于 2021-09-03T12:02:49.970 回答