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>
答案 0 :(得分:0)
您可以为画布设置更高的最大纹理大小,如下所示:fabric.textureSize = 5168
。
请注意,使用如此大的价值时,您可能会遇到硬件支持方面的问题。 Fabric.js官方文档指出,textureSize
为4096是一个相当安全的限制,因此理想情况下,您将尝试将图像保持在该值以下以避免硬件问题。