【发布时间】:2013-08-11 14:52:18
【问题描述】:
我不认为 Fabric.js 是这里的罪魁祸首,因为当我添加时间警报时,它只需要 2-3 秒。但是,这是它使用的代码:
applyTo: function(canvasEl) {
var context = canvasEl.getContext('2d'),
imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height),
data = imageData.data,
len = imageData.width * imageData.height * 4,
index = 0,
average;
while (index < len) {
average = (data[index] + data[index + 1] + data[index + 2]) / 3;
data[index] = average;
data[index + 1] = average;
data[index + 2] = average;
index += 4;
}
context.putImageData(imageData, 0, 0);
},
所以如果不是冒犯者,那么冒犯者就是putImageData函数。
有什么方法可以增加/优化该功能,使其在 15 秒内处理 5000x5000 图像?
如果没有,有没有办法设置一个“工作”图标,只有在 putImageData 通过 jQuery 完成后才会被删除,因为目前,它会在 2 秒后被删除,因为 Fabric.js 代码完成得更快?
【问题讨论】:
-
您是否需要为此使用 JS 和画布,或者 CSS approach 可以为您的应用程序工作?
-
保存用户创建的图像以供将来使用甚至打印,所以我猜这是唯一的方法。我的选项和图像尺寸非常有限,所以只有特殊情况才会那么大。把它想象成一个打印传单。
标签: javascript jquery performance canvas fabricjs