我真的是一个初学者,并且试图将下面的代码工作几天。
我使用了QR码生成器库,该库允许我在QR码的中间添加徽标。完成此操作后,我试图将此qrcode添加到我的背景图片之上。我打算为此使用jimp复合函数。合并两个图像后,我希望返回一个合并图像的缓冲区。
app.get('/qr', (req, res) => {
var url = "https://google.com";
brandedQRCode.generate({
text: url,
path: __dirname +'/image/logo.png',
ratio: 5.2,
opt: {width: 500 , margin: 0}
})
.then(img => {
var background = '/image/background.png';
Jimp.read(img, function(){
// Center the logo
x = Math.floor((bg.bitmap.width - img.bitmap.width) / 2);
y = Math.floor((bg.bitmap.height - img.bitmap.height) / 2);
// Apply on the QRCode
qrImg = bg.composite(img, x, y);
new Promise(function (res, rej) {
qrImg.getBuffer(Jimp.MIME_PNG, function (err, buf) {
if (err) return rej(err);
return res(buf);
});
});
});
return Jimp.read(img);
})
.then(image => {
image.getBuffer(Jimp.MIME_PNG, (err, img) => {
if (err) return rej(err);
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});
})
.catch(error => {
console.log(error);
res.sendStatus(500);
});
这段代码给我一个错误:
“ TypeError:无法读取未定义的属性'width'”
任何人都可以帮我,非常感谢!