фильтры не применяются для больших изображений в ткани 2.4.6 - PullRequest
0 голосов
/ 06 февраля 2019

FabricJS не может применить фильтры к большому изображению из-за «максимального размера текстуры» Я пытаюсь применить фильтры к изображению размером (5168X3448).Могут ли некоторые помочь мне решить эту проблему?

<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.4.6/fabric.js"></script>
</head>
<body>
  <button id="color">Apply color</button>
  <canvas id="c" width=500 height=500></canvas>
</body>
</html>
<script>
  var canvas = new fabric.Canvas('c');
  fabric.Image.fromURL('driver.png', function (img) {
    img.set({
      scaleX: 0.1,
      scaleY: 0.1,

    })
    canvas.add(img);

    var filter = new fabric.Image.filters.BlendColor({
      color: 'red',
      mode: 'multiply'
    });
    img.filters.push(filter);
    img.applyFilters();
    canvas.renderAll();
  }, {
      crossOrigin: 'null'
    });

</script>

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете установить максимальный размер текстуры для вашего холста следующим образом: fabric.textureSize = 5168.

Имейте в виду, что при использовании такого большого значения у вас могут возникнуть проблемы с поддержкой оборудования.Официальная документация Fabric.js гласит, что textureSize из 4096 является довольно безопасным пределом, поэтому в идеале вы должны стараться держать свои изображения ниже этого значения, чтобы избежать проблем с оборудованием.

Рекомендуемое чтение: http://fabricjs.com/fabric-filters

...