gpt4 book ai didi

node.js - 多次调整一张图像的大小

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:00 25 4
gpt4 key购买 nike

我正在将给定图像(保存在磁盘上)的大小调整为不同的大小:

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 。调整大小后速度有何提升720x720480x480而不是2000x2000480x480 ,如果有的话?考虑到我必须阅读 720x720先文件并等待调整大小完成。
  • 我应该在“主” Node 线程上进行这些大小调整还是派生一个子进程?无论如何,它们都是异步运行的,对吗?

最佳答案

你可以使用 bluebird Promise 来做到这一点

const Promise = require('bluebird');
global.Promise = Promise;


var sizes = [{
path: 'large',
xy: 800
},{
path: 'medium',
xy: 300
},{
path: 'small',
xy: 100
}];
Promise.map(sizes, function(size) {
return sharp( img.buffer )
.resize( size.xy, size.xy )
.toFile( size.path );
});

src :- https://github.com/lovell/sharp/issues/154

我试过了,100%正常工作

关于node.js - 多次调整一张图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com