PHP+Waifu2x实现图片自动批量放大

  • A+
所属分类:电脑软件

waifu2x,著名的二次元图片壁纸放大降噪神器
之前介绍过(传送门),就不赘述了

本次试验项目如下
有一个壁纸夹,每隔十分钟就会随机选择一张作为我的电脑壁纸
这个壁纸包内有近年来收集的各种壁纸,有一些早期收集的壁纸分辨率连1080P都不到。挨个儿手动挑出来丢waifu2x放大一波?工程太大太麻烦;整个文件夹丢waifu2x?太费时不说,有些图片可能格式比较特殊,会导致 waifu2x-caffe 报错崩溃

那么,有没有什么办法,既可以按需放大、又能断点续处理、还不会因为少部分特殊图片报错导致整体进度被卡住呢?
使用如下操作进行批量放大!

  1. <?php  // waifu2x-caffe-cui.exe 完整路径   
  2. $waifu2x = 'E:/Program Files/waifu2x-caffe/waifu2x-caffe-cui.exe'; // 原图所在路径  
  3. $input = 'E:/OneDrive/图片/高清壁纸/'; // 处理后图片存放路径   
  4. $output = 'E:/waifu2x/';  // 以下内容请勿随意修改   
  5. $fileList = scandir($input); foreach ($fileList as $file) {     // 方便断点续处理     if (!file_exists($output . $file)) {         $imageInfo = getimagesize("{$input}{$file}");         if ($imageInfo) {             // 图片宽度低于 2000 像素时才处理             if ($imageInfo[0] < 2000) {                 echo "{$file}...n";                 $shell = ""{$waifu2x}" -i "{$input}{$file}" -o "{$output}{$file}" -m noise_scale --scale_ratio 1.5 --noise_level 2";                 exec($shell);             }         } else {             echo "【文件异常】 {$file}n";             var_dump($imageInfo);         }     } }  echo "nAll Done.n";   

执行并等待完毕即可
其中,前三个变量需要根据你本地的实际情况修改为对应的路径
$shell 变量为命令内容,其中 --scale_ratio 表示放大倍数;--noise_level 表示降噪级别
其他更多参数及具体含义可以看官方文档的介绍

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: