Я пытаюсь нарисовать аватар пользователя Discord на node.js холсте. Согласно документации, я должен просто указать URL-адрес как sr c вот так:
var img = new Canvas.Image;
img.onload = () => context.drawImage(img, x, y, w, h);
img.onerror = err => console.log(err);
img.src = url;
Это вообще не работает. Итак, согласно другим источникам, я должен сам получить изображение с помощью http-клиента. Используя Ax ios, я получаю:
function requestImageFromURL(url, callback){
Axios.get(url)
.then(response => {
callback(response.data);
})
.catch(err => {})
.finally(() => {});
}
function drawImageFromURL(url, x, y, width, height){
requestImageFromURL(url, function(buffer){
var img = new Canvas.Image;
img.onload = () => context.drawImage(img, x, y, width, height);
img.onerror = err => console.log(err);
img.src = buffer;
});
}
, но это вызывает некоторые действительно странные ошибки, такие как Error: EINVAL, Invalid argument '�PNG → '
. Итак, я получаю данные, но Canvas обрабатывает их не совсем правильно? Или требуется дополнительная предварительная обработка данных, которые я получаю?