Skip to content

ArSrNa/ArESRGAN-GUI

Repository files navigation

ArSrNaUI ESRGAN图像超分辨率软件

构建本软件

平台:node v18.13.0 ;npm v8.19.3

clone源代码

git clone https://github.com/ArSrNa/ArESRGAN-GUI.git

安装依赖

cd ArESRGAN-GUI
npm i

中国大陆用户注意:由于dddd的原因,安装过程不一定顺利,因为electron某些依赖使用镜像会报错,所以建议不要换镜像下载,使用npm默认镜像即可

安装完成后即可启动

npm run start

源代码内容

目录 内容
./src 主应用资源
./backres 依赖平台文件

./src目录内容如下

文件 内容
js/ 前端代码
res/ 前端依赖
index.css 前端样式
index.html 前端结构
index.js 后端主应用

实现方式与原理

前后端通讯

前端通过ipc消息,ipcMain与ipcRender之间前后端实时交流

前端方式如下

import { ipcRenderer } from 'electron';
ipcRenderer.send(channel,'我永远喜欢菲谢尔');

ipcRenderer.on(channel,(evt,msg)=>{
    // 接收后端信息
    // msg 即为后端消息
})

后端使用express与express-ws处理前端请求 后端处理如下

import { ipcMain } from 'electron';

ipcMain.on(channel,(evt,msg)=>{
    // msg为前端消息
})

mainWindow.webContents.send(channel,msg)

Child_Process

node中有这么一个模块,可以调用子进程,通过这个方式实现调用编译后的ESRGAN

var spawn = require('child_process').spawn;

esrgan = spawn(esrganPath,[
    '-i',file,
    '-o',`${file}_optimization.png`,
    '-n',model
  ]); 

简单地封装起来

function optimization(data){
  var file = data.file;
  var model = data.model;
  esrgan = spawn(esrganPath,[
    '-i',file,
    '-o',`${file}_optimization.png`,
    '-n',model
  ]); 
  esrgan.stderr.on('data', function (data) {
    console.log(data.toString('utf8'));
    var progressSet = parseInt(data)/100
    if(typeof progressSet=='number') mainWindow.setProgressBar(progressSet)
    mainWindow.webContents.send('esrgan',{
      type:'log',
      data:data.toString('utf8')
    });
    }); 
    esrgan.on('exit', function (code, signal) { 
    mainWindow.setProgressBar(-1)
    console.log('child process eixt ,exit:' + code); 
    mainWindow.webContents.send('esrgan',{
      type:'exit',
      code:'exit'+code
    });
    return code
    });
  }

问题反馈

您可以在这个页面的 issues 提交您的疑问,建议附上日志,控制台(Ctrl+Shift+I调出 或 点击页面上栏的调试控制台)截图

或者到 https://support.qq.com/product/419220 进行业务层面的反馈

当您阅读到此时

这是我第一次做electron的应用,存在无数的不足,现在已经一年了,更新了不下10个版本,因为大家的支持与信任让我们有勇气,有理由继续做下去,虽然核心部分不是我所开发的,但作为“第一次”还是有点纪念意义的

2022-1-26 ~ 2023-2-5

我把这个应用发布在b站的时候,未曾想过有如此多关注度,也从没想过这么多的下载量,以至于连夜买了500G的资源包仍然超量

我们开放了用于反馈的通道,本以为只有自己能发现问题,结果确实大家先发现了许多bug,让这个应用愈发完美。

我们也积极响应所有用户的提问,积极修复问题,几乎在1周内就能实现。

1675598932040 1675598941582 1675598949561 1675598956066 1675598960842 1675598968212

大家给了我灵感,减轻了我排查bug的负担,也因为此,我更有动力继续把应用产品做下去

在此,我诚挚地感谢所有使用本软件的用户,感谢所有为此软件做出贡献的用户,感谢您的信任与支持

暂时不知道还能写什么了


感谢您的支持 Powered by Ar-Sr-Na