如何在javascript中调整Base64图像的大小

27m*_*7sn 6 javascript node.js reactjs react-native

我测试了这个包:https : //preview.npmjs.com/package/resize-base64

制作Canvas元素需要前端部分..等等,我只需要在没有前端的情况下制作这个过程

我使用 react native,所以任何针对 React/Native、node 或 native javascript 的解决方案都是可以接受的。

Sad*_*ori 12

可能晚了,但希望能帮助到其他人。

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)
        })
}
Run Code Online (Sandbox Code Playgroud)


Bra*_*rad 1

您必须分步骤执行此操作:

  1. 解码 Base64
  2. 解码图像数据
  3. 缩放图像
  4. 对图像进行编码
  5. 输出图像

几乎所有这些步骤都可以用夏普来完成。 https://github.com/lovell/sharp在大多数情况下 ,该软件包使用的libvips速度比任何其他图像缩放器要快得多。