我想使用Sharp
图像处理库压缩图像,将其传递给外部quant
库,然后为其获取清晰的元数据。我想这样做是为了将压缩的图像大小实际覆盖到图像上(仅在开发期间)。
对于 WEBP,这很容易,因为一切都在快速的管道中。
// specify the compression
myImage.webp({ quality: 80 });
// actually compress it
var tempBuffer = await myImage.toBuffer({ resolveWithObject: true});
// create a new sharp object to read the metadata
var compressedImage = sharp(tempBuffer.data);
// Image data is now available in
console.log(compressedImage.info.size / 1024);
但是当使用这个quant
库时,我将它输送到第三方库中,所以它不再是一个尖锐的物体。我需要以最有效的方式再次取出原始缓冲区。我是 Node.js 的新手,不知道该怎么做。
resizedImage.png()
.pipe(new quant(['--quality=50-70', '--speed', '1', '-']));
我需要使用类似https://www.npmjs.com/package/stream-to-array的东西吗?
这对我来说似乎很疯狂!我错过了什么吗?