Не отображаются символы в 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

screen

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(); 
→ Ссылка