0

画像処理ライブラリを使用して画像を圧縮し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のようなものを使用する必要がありますか?

それは私にはクレイジーに思えます!何か不足していますか?

4

1 に答える 1