- @echo off&setlocal enabledelayedexpansion&cd /d %~dp0
- title 图片高和宽的最大值为输入的缩略图最大像素值……
- if not exist "C:\Windows\System32\nconvert.exe" (
- echo 没有nconvert,请前往下面地址下载,放入C:\Windows\System32
- echo,http://bcn.bathome.net/s/tool/index.html?key=nconvert
- pause&exit /b
- )
-
- set /p "str=请输入缩略图最大像素:"
- ::排除res、thumbs、slides文件夹
- for /f "delims=" %%a in ('dir /ad /b /s * ^| findstr /i /v "\\res$" ^| findstr /i /v "\\thumbs$" ^| findstr /i /v "\\slides$"') do (
- for %%i in ("%%a\*.jpg" "%%a\*.png" "%%a\*.bmp") do (
- if not exist "%%a\%%~nxi" md "%%a\thumbs")
- cd "%%a"&echo.&echo 进入 "%%a" 文件夹查找图片. . .&echo 缩略图将存放于各自文件夹的thumbs内. . .
- for /f "delims=" %%b in ('dir /a-d /b "*.jpg" "*.png" "*.bmp"') do (
- if %%~zb gtr 209715 (
- for /f "tokens=1* delims=:" %%i in ('nconvert.exe -info "%%b"^|findstr /i /l /c:"Width"') do set W=%%j&set W=!W: =!
- for /f "tokens=1* delims=:" %%k in ('nconvert.exe -info "%%b"^|findstr /i /l /c:"Height"') do set H=%%l&set H=!H: =!
- if !W! leq !H! (set W=0&set H=!str!) else (set W=!str!&set H=0)
- nconvert -rmeta -quiet -overwrite -out jpeg -ratio -resize !W! !H! -c 8 -o "%%a\thumbs\%%~nb.jpg" "%%~nxb"
- ))
- )
- echo.
- echo,创建缩略图完成. . .
- pause&exit /b
复制代码 我一张1080x1920的人物图片因相近色比较多只有39k,另外一张只有这张图片四分之一尺寸的却是它的8倍大小,
因图片尺寸不固定,所以不确定是不是没有压缩造成的,可以考虑下这种 |