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

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

如何解决移动到其他功能时 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 举报,一经查实,本站将立刻删除。