我测试了这个包:https : //preview.npmjs.com/package/resize-base64
制作Canvas元素需要前端部分..等等,我只需要在没有前端的情况下制作这个过程
我使用 react native,所以任何针对 React/Native、node 或 native 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)
})
}
您必须分步执行此操作:
几乎所有这些步骤都可以用夏普来完成。 https://github.com/lovell/sharp 这个包libvips
在大多数情况下使用并且比任何其他图像缩放器快得多。