标题: [文件操作] 转换图片的批处理怎样实现拖拽和智能比例判断? [打印本页]
作者: myacg 时间: 2020-4-7 17:13 标题: 转换图片的批处理怎样实现拖拽和智能比例判断?
因为电脑里有太多图片要处理,所以在论坛看着帖子教程摸索了一阵子,搞了个一键转换图片的bat处理。但水平实在不行,只能够将就用一下。
希望论坛大佬帮我加上两个功能。
1、希望能够实现拖拽图片到bat图标就能够运行。
2、希望能够智能比例判断,当图片宽度大于高度时,修改图片宽度为1920。当图片高度大于宽度时,修改图片高度为1080。
先谢谢大家了。- @echo off&setlocal
- for /f "delims=" %%z in ('dir/b nconvert.exe') do set "nconvert=%%~fz"
- set imageWidth=1080
- set iQuility=100
- for /f "delims=" %%I in ('dir/b/s/a-d *.jpg,*.jpeg,*.png,*.bmp,*.gif') do "%nconvert%" -c 5 -q %iQuility% -overwrite -out jpeg -D -ratio -resize 0 %imageWidth% "%%I">nul
- echo ==============&echo Done!&echo.
复制代码
作者: myacg 时间: 2020-4-8 12:24
诚心求教,等待大佬解答!
作者: went 时间: 2020-4-8 20:58
ANSI保存,输出*_cut.*- @echo off
- if "%~1"=="" ( echo 请拖动图片文件到bat! & pause & exit )
- REM 设置nconvert.exe路径
- set "path=%path%;C:\Users\lenovo\Desktop\XnView"
- :loop
- call :cutImg "%~1"
- shift /1
- if not "%~1"=="" goto :loop
- pause&exit
-
- :cutImg
- echo 处理: %~1
- echo %~x1 | findstr /i "jpg jpeg png bmp gif png" >nul 2>nul || (
- echo 非图片文件!
- echo -----------------------------------------
- goto :eof
- )
- set "width=0" & set "height=0"
- for /f "tokens=2 delims=:" %%i in ('nconvert -info "%~1" ^| findstr /i "width height"') do (
- call set /a "0/%%width%%" >nul 2>nul && set "height=%%i" || set "width=%%i"
- )
- echo 原尺寸: %width% %height%
- if %width% equ %height% ( echo ----------------------------------------- & goto :eof )
- if %width% gtr %height% set "newsize=1920 %height%
- if %width% lss %height% set "newsize=%width% 1080"
- echo 新尺寸: %newsize%
- nconvert -quiet -overwrite -resize %newsize% -o "%~dp1%~n1_cut%~x1" "%~1" && echo 完成!
- echo -----------------------------------------
复制代码
作者: myacg 时间: 2020-4-9 00:03
回复 3# went
非常感谢你的指导,不过有个缺陷啊,图片没有等比例缩放,纯粹拉伸了。
作者: myacg 时间: 2020-4-9 11:05
本帖最后由 myacg 于 2020-4-9 11:14 编辑
我搜论坛教程改了一下,这样就行了,比例正常,再次感谢。
if %width% gtr %height% set "newsize=1920 0
if %width% lss %height% set "newsize=0 1080"
不过这样改有个缺陷,就是新尺寸显示不正常了,不过不影响使用。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |