微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未呈现 JIMP 图像合成

如何解决未呈现 JIMP 图像合成

我正在使用带有 nodejs 的 Jimp 创建日期的动态图像, 这是我的功能

const buildDate = function(date) {
    return new Promise(function(resolve,reject) {
        Jimp.create(55,500).then(dateCanvas => {
            for (let i = 0; i < date.length; i++) {
                let c = date.charat(i);
                let rand = Math.floor(Math.random() * 3);
                console.log(`${c}${rand}.png`);
                Jimp.read(path.join(numbers,(isNumber(c)?`${c}${rand}.png`:`s${rand}.png`)),(err,numberImage) => {
                    if (err) return reject(err);
                    dateCanvas.composite(numberImage,i*25,[],() => {
                        
                        if (i >= (date.length-1)) return resolve(dateCanvas);
                    });
                });
            }
        });
    });
};

我正在像这样使用我的函数

buildDate('25/12/2009')
         .then(dateCanvas => {
               image.blit(dateCanvas,139,1224)
         }).catch(err => reject(err));

我的“数字文件夹”中有 3 个 png,用于从 0 到 9 的 30*55 的每个数字。

我的问题是:结果上只显示 2 个数字。我认为这是因为我不等待其他图像被读取但我不知道该怎么做? 非常感谢我的英语不好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。