【发布时间】:2023-04-04 13:21:01
【问题描述】:
我正在将给定图像(保存在磁盘上)调整为不同的大小:
var image = 'photos/pic';
var sizes = [1440, 1080, 720, 480];
for (var i = 0; i < sizes.length; i++) {
sharp(image + '.jpg')
.resize(sizes[i], sizes[i])
.toFile(image + '-' + sizes[i] + '.jpg');
}
这按预期工作,但我想还有改进的余地。
- for 循环会导致任何问题吗?如果是的话,有没有更好的方法 解决这个问题?
- 等待生成的图片调整大小并将其用于下一个调整大小过程会更快吗?假设原始图片是
2000x2000。将720x720调整为480x480而不是将2000x2000调整为480x480的速度提升是多少,如果有的话?考虑到我必须先阅读720x720文件并等待调整大小完成。 - 我应该在“主”节点线程上调整大小还是派生一个子进程?无论如何,它们都是异步运行的,对吗?
【问题讨论】:
-
我只提供基本的 cmets :- 首先缓存 size.length 因为我们不需要像这样访问它 4 次:- var length=sizes.length;变量临时大小; for(vari=0;i
-
关于您的第三点,您使用的是什么库?你怎么认为它是异步的?从第一次看的调整大小似乎是同步的......如果它是异步的,就像你说的那样,它当然会给你带来问题,因为 forloop 将在调整大小之前完成,因此它将是 1440 像素的 4 个副本......你明白吗?
-
sharp,见标签。