如何解决Node.js v14.15.3中出现的Error: Stream yields empty buffer错误?
Issue with ImageMagick Resizing Large Images (>4000x5000)
我最近在用ImageMagick搭配gm库做图片缩放处理,遇到了一个棘手的问题:当处理分辨率超过4000x5000像素的图片时,程序会抛出错误。
我的图片缩放代码如下:
const gm = require('gm').subClass({ imageMagick: true }); const resize = (imageStream, width, height) => new Promise((res, rej) => { gm(imageStream.on('error', rej)) .resize(width, height, '>') .noProfile() .toBuffer('jpeg', (err, data) => (err ? rej(err) : res(data))); });
我已经核对过ImageMagick的资源限制配置,理论上应该能支撑这类大尺寸图片的处理,具体配置参数如下:
- Width: 64MP
- Height: 64MP
- List length: 18.446744EP
- Area: 3.2212GP
- Memory: 2GiB
- Map: 3GiB
- Disk: 10GiB
- File: 786432
- Thread: 2
- Throttle: 0
- Time: unlimited
有没有技术同行遇到过类似的情况?或者能帮忙分析下问题可能出在哪,以及对应的解决办法?万分感谢!
内容的提问来源于stack exchange,提问作者Максим Выхрист
相关产品推荐
相关产品推荐

