|
|
发表于 2026-9-29 21:31:46
|
显示全部楼层
本帖最后由 aloha20200628 于 2026-9-30 09:12 编辑
以下代码第三行可自定义三个变量:水印起始高度 h0,水印纵向间距 hm,水印透明度 vt
每次从水印图目录文件集数组中随机抽取其一,自上而下顺序合成到当前被处理的大图中,纵向间距=hm,横向位置随机而定
对每个大图 *.* 的处理结果会覆盖原图
test.bat
- @echo off &setlocal &chcp 936 >nul
- set "wd=c:\水印" &set "sd=d:\处理"
- cd /d "%sd%" &set/a "n=0, h0=200, hm=200, vt=50" &chcp 65001 >nul
- for /f "tokens=1* delims=:" %%a in ('dir /b/s/a-d "%wd%\*.png"^|findstr /n .*') do set/a "n+=1" &set "w[%%a]=%%b"
- for /f "delims=" %%F in ('dir /b/a-d *.jpg *.jpeg *.png') do (
- for /f "tokens=1,2" %%a in ('magick identify -format "%%w %%h" "%%F" ') do set/a "ws=%%a,hs=%%b,rh=hs-h0"
- (echo,"%%F"&echo,-compose dissolve -define compose:args=%vt%
- setlocal enableDelayedExpansion &call :xxx &endlocal
- echo,-write "%%F" -exit)>"#$.txt"
- magick -script #$.txt )
- del /q "#$.txt" &exit/b
- :xxx
- set/a "fn=1+%random%%%n"
- for /f "tokens=1,2" %%a in ('magick identify -format "%%w %%h" "!w[%fn%]!" ') do set/a "wn=%%a,hn=%%b"
- set/a "rw=ws-wn,h=hs-rh,rh-=hn+hm"
- if %rh% lss 0 (exit/b) else set/a "w=1+%random%%%rw"
- echo,"!w[%fn%]!" -gravity northWest -geometry +%w%+%h% -composite
- goto :xxx
复制代码 |
|