Не отображаются символы в Canvas
Когда пытаюсь вывести на картинку текст с помощью Canvas, то некоторые символы и эмодзи отображаются некорректно что на Windows, что на Ubuntu. 1 скрин - на Windows, 2 скрин - на Ubuntu. При любом шрифте такая шляпа. Canvas что на Винду, что на Ubuntu я устанавливал просто через npm install canvas.
Прикладываю кусочек кода:
const canvas = Canvas.createCanvas(1000,333)
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('https://i.imgur.com/YzwG7yk.jpeg')
ctx.drawImage(background, 0, 0, canvas.width, canvas.height)
ctx.font = '300 30px "Arial"'
ctx.fillStyle = '#ffffff'
ctx.fillText(`???\nマークとニック\nP???z?k`, 70, 70)
const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'xp.png');
return message.channel.send(attachment)
Заранее благодарю за помощь! ?
Ответы (1 шт):
Автор решения: Daniil Loban
→ Ссылка
Вероятно ошибка в чем то другом, я проверил работу на Kubuntu OS
const Canvas = require('canvas')
const fs = require('fs')
const makePicture = async() => {
const canvas = Canvas.createCanvas(1000,333)
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('https://i.imgur.com/YzwG7yk.jpeg')
ctx.drawImage(background, 0, 0, canvas.width, canvas.height)
ctx.font = '300 30px "Arial"'
ctx.fillStyle = '#ffffff'
ctx.fillText(`???\nマークとニック\nP???z?k`, 70, 70)
const buffer = canvas.toBuffer('image/png')
fs.writeFileSync('./test.png', buffer)
}
makePicture();


