簡體   English   中英

我們如何將一張base64的圖片壓縮到Node.js中呢?

[英]How do we compress the size of a base64 image in Node.js?

我從 api 收到一個 base64 編碼的響應,它有大量的字符(數據)。 所以我想縮放/縮小這張 base64 圖像的大小。 最好的方法是什么?

嗯,base64 只是一些字節的文本表示。

首先,您需要將其轉換為帶字節的緩沖區。 例如像這樣:

const imageBuffer = Buffer.from(yourString, 'base64');

然后你應該將它保存在磁盤上並使用一些其他工具如 imagemagick 來轉換它:

fs.writeFileSync('your-image.png', imageBuffer); // in case you know it's PNG, ofc
// transform somehow, probably invoking third-party tool using child_process.execSync

或者您可以使用像Sharp這樣的庫來優化該緩沖區中的圖像。 這是回購協議中的一個例子:

sharp(inputBuffer)
  .resize(320, 240)
  .toFile('output.webp', (err, info) => { ... });

根據您操作的圖像類型和您嘗試進行的轉換,您可能需要不同的工具,不僅是 Sharp,還有 Gifsicle 或 Guetzli。

多年前,我的團隊創建了一個小型 CLI 工具,用於根據我們的需要優化圖像。 該工具不能解決您的問題,但也許它的代碼(我們使用不同的編碼器)可以以某種方式幫助您:

https://github.com/funbox/optimizt/blob/master/lib/optimize.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM