autojs人脸年龄变化

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


效果展示


缘起

2021/10/04, 今天autojs升级到9.0.9了, 自带的nodejs基本可以使用了, 就用腾讯云的人脸变换sdk来测试一下


环境


手机: Mi 11 Pro


Android版本: 11


Autojs版本: 9.0.9


思路


  1. autojs负责界面展示
  2. nodejs负责接入SDK


目录


安装模块

npm i  --no-bin-links


你找不到上面这个图片的位置


  1. 打开任意一个js文件
  2. 左上角有一个文件, 点击它
  3. 点击你这个项目文件夹右侧的三个点
  4. 点击npm
  5. 点击其他npm命令或包管理器
  6. 输入命令


你将学到以下知识点


  • autojs和nodejs通信
  • nodejs调用平台的SDK


代码讲解


1. ui界面, 就一个图片, 一个拖动条, 拖动条负责改变年龄
ui.layout(
  <vertical>
    <img id="img" src="file://{{imgPath}}"></img>
    <seekbar id="seekbar" progress="30" w="*" margin="18" />
    <horizontal w="*" gravity="center">
      <text text="年龄: " textSize="50sp"></text>
      <text id="age" textSize="50sp">
        30
      </text>
    </horizontal>
  </vertical>
);


2. 使用Rhino引擎运行nodejs脚本, 有了id以后, 就可以在nodejs那边传东西到autojs这边了
const execution = $engines.execScriptFile("./node处理人脸.node.js", {
  arguments: {
    serverEngineId: $engines.myEngine().id,
  },
});


3. 监听来自Node.js引擎发送的消息
$events.on("reply", (result) => {
  console.log(result);
  http.get(result.result.ResultUrl, {}, function (res, err) {
    if (err) {
      console.error(err);
      return;
    }
    log("code = " + res.statusCode);
    let tempPath = files.join(files.getSdcardPath(), "脚本", "temp.jpg");
    files.writeBytes(tempPath, res.body.bytes());
    ui.img.attr("src", "file://" + tempPath);
  });
});


4. 设置拖动条监听事件, 数值改变就给node传消息, 返回结果后, 修改图片
setTimeout(function () {
  ui.seekbar.setOnSeekBarChangeListener(
    new android.widget.SeekBar.OnSeekBarChangeListener({
      onStopTrackingTouch: function (seekbar) {
        let age = seekbar.getProgress();
        toastLog(age);
        ui.age.setText(age + "");
        // 给Node.js引擎发送消息
        execution.engine.emit("command", {
          name: "切换年龄",
          args: {
            imgPath: imgPath,
            age: parseInt(age),
          },
        });
      },
    })
  );
}, 1000);


5. 脚本结束时, 也结束node脚本
events.on("exit", function () {
  execution.engine.forceStop();
});


6. nodejs主要代码
// 从参数中取出Rhino引擎的ID
const serverEngineId = engines.myEngine().execArgv.serverEngineId;
// 根据ID找出Rhino引擎
const serverEngine = engines.getRunningEngines().find((e) => e.id === serverEngineId);
$autojs.keepRunning();
// 监听命令消息
engines.myEngine().on("command", (command) => {
  switch (command.name) {
    case "切换年龄":
      切换年龄(command.args);
      break;
  }
});
// 根据url参数发送http请求并回复给Rhino引擎
async function 切换年龄(args) {
  let age = args.age;
  let imgPath = args.imgPath;
  const res = await getNewFace(age, imgPath);
  serverEngine.emit("reply", {
    actionName: "切换年龄结果",
    result: res,
  });
}


注意事项


  • autojs和nodejs混用的时候, 不可以有project.json
  • 不要暴露自己的秘钥
  • 用到的node模块有两个: tencentcloud-sdk-nodejs, mkdirp
  • js本来就是异步的
  • autojs和nodejs通信是重点

参考

人脸年龄变化-官方文档


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问

--- 牙叔教程


声明

部分内容来自网络

本教程仅用于学习, 禁止用于其他用途




相关文章
|
3月前
|
编解码 JSON 文字识别
印刷文字识别使用问题之进行表格解析时年份和灰色部分没解析出来,网站体验能检测到,该如何优化
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 算法 Java
视觉智能开放平台产品使用合集之在已有的N张照片中搜索包含特定人脸样本的照片,并获取置信度返回结果,该用哪个API
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
5月前
|
机器学习/深度学习 开发工具 计算机视觉
视觉智能平台常见问题之平台的换脸或者换人物到对应的某个图片里面去如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
|
5月前
|
监控 算法 Serverless
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
123 0
|
5月前
|
人工智能 API 开发工具
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
301 0
|
Android开发
autojs提高二维码识别率(一)-标记定位点
autojs提高二维码识别率(一)-标记定位点
355 0
|
机器学习/深度学习 并行计算 Python
如何调整照片人物年龄,此生也算共白头,PaddleGAN开源项目安装使用 | 机器学习
如何调整照片人物年龄,此生也算共白头,PaddleGAN开源项目安装使用 | 机器学习
如何调整照片人物年龄,此生也算共白头,PaddleGAN开源项目安装使用 | 机器学习
|
定位技术 API iOS开发
Python 技术篇-获取图片GPS信息,锁定追踪图片拍摄地点、拍摄时间
Python 技术篇-获取图片GPS信息,锁定追踪图片拍摄地点、拍摄时间
329 1
Python 技术篇-获取图片GPS信息,锁定追踪图片拍摄地点、拍摄时间
|
机器学习/深度学习 编解码 人工智能
Photoshop把AI论文demo打包实现了:照片上色、改年龄、换表情只需要点点鼠标
我们见过很多神经网络上色、换表情、修改年龄的研究和应用,但它们往往只存在于 GitHub 上,距离「人人能用」还有一段距离。但最近,推出 Photoshop 的 Adobe 这次终于有所表示了:你们论文里的效果,我们打包实现了。
349 0
Photoshop把AI论文demo打包实现了:照片上色、改年龄、换表情只需要点点鼠标