标题: [其他] 新手 求帮忙解决 批量等比缩放图片的bat 问题 [打印本页]
作者: qu705196037 时间: 2024-1-23 00:00 标题: 新手 求帮忙解决 批量等比缩放图片的bat 问题
1.输入设定目标尺寸(length*width)
2.对文件夹下图片进行等比缩放处理,
如果图片的length 大于图片的width 则 将图片按照 目标尺寸length/图片尺寸length 的比例 进行缩放
如果图片的length 小于或等于图片的width 则 将图片按照 目标尺寸width/图片尺寸width 的比例 进行缩放 ;
应用场景 :将图片按照桌面分辨率进行等比不失真缩放 。
论坛里面找了下 只有图片尺寸变更或者缩放的回答,查了下 nconvert 的指令 只发现 -ratio 这个指令能等比缩放 ;
新人 对 bat 指令刚接触还不是特别熟悉 ,求大佬帮忙。
作者: 77七 时间: 2024-1-23 16:00
本帖最后由 77七 于 2024-1-23 22:46 编辑
- @echo off
- cd /d "%~dp0"
- set hh=300
- set ww=400
-
- for /f "delims=" %%i in ('dir /b /a-d *.jp*g *.png') do (
- for /f "tokens=1-2 delims=: " %%a in ('nconvert -quiet -info "%%i"') do (
- if /i "%%a" equ "width" (
- set w=%%b
- ) else if /i "%%a" equ "height" (
- set h=%%b
- )
- )
- setlocal enabledelayedexpansion
- if !h! gtr !w! (
- endlocal
- nconvert -quiet -overwrite -ratio -resize 0 %hh% "%%i"
- ) else (
- endlocal
- nconvert -quiet -overwrite -ratio -resize %ww% 0 "%%i"
- )
- if exist "%%~ni.jpg" (
- if exist "%%~ni.jpeg" (
- del "%%~ni.jpeg"
- )
- )
- )
- pause
复制代码
作者: qu705196037 时间: 2024-1-23 20:23
本帖最后由 qu705196037 于 2024-1-23 20:25 编辑
回复 2# 77七
可以实现缩放了,就是遇到个小麻烦
就是我的图片有的是 jpeg和png格式的 ,我就将 这里的 for /f "delims=" %%i in ('dir /b /a-d *.jpg') do ( 代码 改成了 for /f "delims=" %%i in ('dir /b /a-d "*.jpg" "*.png" "*.jpeg" ') do (
但是执行后发现 jpeg格式的文件 会生成一个同名的 jpg文件。、
我将这里 nconvert -quiet -out jpeg -ratio -resize 0 %hh% "%%i" 改成了 nconvert -quiet -overwrite -ratio -resize 0 %hh% "%%i" 还是会生成一个新的jpg图片 不会覆盖 。
有办法解决吗?
作者: Five66 时间: 2024-1-23 20:37
这样子不?ffmpeg(需要enable libutils)- @echo off&chcp 936
-
- set _width=500
- set _length=200
-
- for /f "eol=/ delims=" %%i in ('dir /b /a-d *.jp*g') do (
- ffmpeg -y -i "%%i" -vf "scale='if(gte(iw,ih),%_width%,-1):if(gte(iw,ih),-1,%_length%):flags=lanczos'" -pix_fmt rgb24 -vcodec png -vframes 1 -an -sn "%%~ni.png"
- )
-
- pause
复制代码
作者: 77七 时间: 2024-1-23 21:27
回复 3# qu705196037
比如 1.jpeg ,你希望得到的图片文件名?原文件是否保留?
作者: qu705196037 时间: 2024-1-23 22:22
回复 5# 77七
现在的情况是 1.jpeg 处理后 会生成一个 1.jpg ,原1.jpeg 也会存在,相当于多了一个文件。想 不生成新的,如果是 png、jpeg 、jpg的话 都是只是替换 不生成新的。
作者: 77七 时间: 2024-1-23 22:47
回复 6# qu705196037
已在2楼修改。
作者: qu705196037 时间: 2024-1-23 23:19
回复 7# 77七
可以了 3QU
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |