Egorian
@Egorian

The source must be a Jimp image.Что не так?

Использую библиотеку чтобы склеить два изображения,но выскакивает ошибка The source must be a Jimp image.
var Jimp = require("jimp");
Jimp.read("1.png").then(function (image) {
    image.composite( "4.png", 20, 0 )                          
         .write("combo.jpg"); / 
}).catch(function (err) {
    console.error(err);
});
  • Вопрос задан
  • 452 просмотра
Пригласить эксперта
Ответы на вопрос 1
Судя по исходникам, в функцию .composite() нельзя передать путь до файла - сначала его нужно прочитать:
Jimp.read("1.png").then(function (destImage) {
    Jimp.read("4.png").then(function (srcImage) {
        destImage.composite(srcImage, 20, 0 )                          
            .write("combo.jpg"); 
    });
}).catch(function (err) {
    console.error(err);
});


Можно переписать код так:
Promise.all([
    Jimp.read("1.png"),
    Jimp.read("4.png")
])
     // results можно заменить на [destImage, srcImage], если используется ES6
    .then(function (results) {
        results[0].composite(results[1], 20, 0 )                          
            .write("combo.jpg"); 
    })
    .catch(function (err) {
        console.error(err);
    })
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы