簡體   English   中英

如何在javascript中調整Base64圖像的大小

[英]how to resize Base64 image in javascript

我測試了這個軟件包: https//preview.npmjs.com/package/resize-base64

它需要一個前端部分來制作Canvas元素..依此類推,我只需要在沒有前端的情況下進行這個過程

我使用react native,因此任何React / Native,node或native javascript的解決方案都是可以接受的。

它可能很晚,但希望能幫助其他人。

const sharp = require('sharp');

// original base64 image
const base64Image = "data:image/jpeg;base64,/9j/4QDsRXhpZg ...  ...  ... ";

// express route function
export default function (req, res, next) {
    let parts = base64Image.split(';');
    let mimType = parts[0].split(':')[1];
    let imageData = parts[1].split(',')[1];

    var img = new Buffer(imageData, 'base64');
    sharp(img)
        .resize(64, 64)
        .toBuffer()
        .then(resizedImageBuffer => {
            let resizedImageData = resizedImageBuffer.toString('base64');
            let resizedBase64 = `data:${mimType};base64,${resizedImageData}`;
            res.send(resizedBase64);
        })
        .catch(error => {
            // error handeling
            res.send(error)
        })
}

您必須按步驟執行此操作:

  1. 解碼Base64
  2. 解碼圖像數據
  3. 縮放圖像
  4. 編碼圖像
  5. 輸出圖像

幾乎所有這些步驟都可以通過Sharp完成。 https://github.com/lovell/sharp此軟件包使用libvips並且在大多數情況下明顯快於任何其他圖像縮放器。

暫無
暫無

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

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