画像処理ライブラリを使用して画像を圧縮し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のようなものを使用する必要がありますか?
それは私にはクレイジーに思えます!何か不足していますか?