Waifu2x+PHP实现自动批量放大图片
2019-07-07
waifu2x,著名的二次元图片壁纸放大降噪神器
之前介绍过(传送门),就不赘述了
那这次我要搞什么玩意儿呢?
众所周知,我有一个壁纸包,每隔十分钟就会随机选择一张作为我的电脑壁纸
这个壁纸包伴随了我3年有余,有一些早期收集的壁纸分辨率连1080P都不到。挨个儿手动挑出来丢waifu2x放大一波?工程太大太麻烦;整个文件夹丢waifu2x?太费时不说,有些图片可能格式比较特殊,会导致 waifu2x-caffe 报错崩溃
那么,有没有什么办法,既可以按需放大、又能断点续处理、还不会因为少部分特殊图片报错导致整体进度被卡住呢?
当——然——有——啦!
<?php
// waifu2x-caffe-cui.exe 完整路径
$waifu2x = 'E:/Program Files/waifu2x-caffe/waifu2x-caffe-cui.exe';
// 原图所在路径
$input = 'E:/OneDrive/图片/高清壁纸/';
// 处理后图片存放路径
$output = 'E:/waifu2x/';
// 以下内容请勿随意修改
$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";
以上内容保存为任意文件名,然后在命令行下用 php [任意文件名].php
执行并等待完毕即可
其中,前三个变量需要根据你本地的实际情况修改为对应的路径
$shell
变量为命令内容,其中 --scale_ratio
表示放大倍数;--noise_level
表示降噪级别
其他更多参数及具体含义可以看官方文档的介绍
博主你这个配图很和主题啊,是不是在暗示什么,O(∩_∩)O哈哈~
老婆放大器 (:3」∠)
哇是大佬,awsl
最近正准备靠你的 ant design pro 吃饭 (:3」∠)
没有没有,不是大佬
代码很烂 不要介意就好 (:3」∠)
你真棒
这图是亮点
挺好的哈。。
这奇怪的语法高亮
懒得修了,准备好搞大事了
两倍的老婆,两倍的快乐
bash 能解决的事,非要用 PHP 🌚🌚🌚
bash好像原生不能获取图片宽度,也没法跨平台(而且我也菜
非技术的路过。
小紫又水了一篇文章(
你的博客呢
由于 AlphaRacks 跑路,暂时挂掉惹 qwq
打算等期末考完试之后再重建(