移动到其他功能时 JIMP 图像写入功能出现问题

问题描述

不完全确定如何正确使用 Jimp,但在通过它跌跌撞撞后,我开发了一个功能来记录图片,将其保存在子目录下并根据日期/时间命名。真正的问题是,当我尝试返回主函数时,我的图像已损坏,而如果我不允许它返回,则调用一个函数或仅运行 savePic() 函数本身就完全没问题。

我已经更改了代码以确保它不会自行登录,并且重复运行保存循环会使用自己单独的名称保存各个文件,但仍然无法打开每个文件。图像可以写入但不能写入是没有意义的。

如果你愿意,这是我的代码

function getBATAmt() {
    console.log("Moving to Rewards page.");

    //move mouse and click
    
    robot.moveMouse(600,50);
    robot.mouseClick(); 
    robot.typestring("brave://rewards");
    robot.keyTap('enter');

    console.log("Logging current BAT amt...");
    savePic();

    if (true) {
        console.log('BAT logged.');
        siteCrawl();
    }
}

function savePic() {
    sleep(1000);

    var xstart = 830;
    var ystart = 670;

    var xlim = 960;
    var ylim = 700;

    var rimg = robot.screen.capture(0,xlim,ylim);

    var dir = 'BATimg/'
    var today = new Date();
    var date = '(' + today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate() + ')';
    var time = today.getHours() + "_" + today.getMinutes() + "_" + today.getSeconds();
    var d = `${dir + date + time.toString()}.jpeg`

    // create a new blank image
    var jimg = new Jimp(xlim - xstart,ylim - ystart);

    for (var x = xstart; x < xlim; x++) {
        for (var y = ystart; y < ylim; y++) {  
                var hex = rimg.colorAt(x,y);
                var num = parseInt(hex+"ff",16)

                // Write pixel into
                jimg.setPixelColor(num,x - (xstart + 1),y - (ystart + 1));
            }
        }

    jimg.write(d);

    return(true);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)