Board logo

标题: [文件操作] [分享]批处理给照片(包括子文件夹)添加随机图片水印 [打印本页]

作者: Batcher    时间: 2023-11-8 19:23     标题: [分享]批处理给照片(包括子文件夹)添加随机图片水印

【问题描述】

https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A
使用这篇文章里面的代码,在照片目录下的多张图片可以直接添加上。
但有很多文件夹,不同的文件夹里的图片都要改,怎么写?

作者: Batcher    时间: 2023-11-8 19:25

【解决方案】

RandomPictureWatermark-2.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 1、下载并安装 ImageMagick 这个命令行工具
  4. REM https://imagemagick.org/script/download.php#windows
  5. REM 2、根据自己电脑实际安装路径设置以下临时环境变量
  6. set "path=C:\Program Files\ImageMagick;%path%"
  7. REM 设置待处理的照片所在的目录
  8. set "FolderOld=C:\Test\照片"
  9. REM 设置水印图片所在的目录
  10. set "FolderWM=C:\Test\水印"
  11. REM 设置添加水印之后的照片所在的目录
  12. set "FolderNew=C:\Test\合成"
  13. set "IndexWM=0"
  14. for /f "delims=" %%i in ('dir /a-d /b /s "%FolderWM%\*.png"') do (
  15.     set /a IndexWM+=1
  16.     set "File!IndexWM!=%%i"
  17. )
  18. set "IndexGD=0"
  19. set "ListDirect=NorthWest North NorthEast West Center East SouthWest South SouthEast"
  20. for %%i in (%ListDirect%) do (
  21.     set /a IndexGD+=1
  22.     set "Position!IndexGD!=%%i"
  23. )
  24. REM 假设待处理的照片有jpg、png两种格式,如有需要可以继续添加
  25. set "ListExt=jpg png"
  26. set "PictureType="
  27. for %%i in (%ListExt%) do (
  28.     set "PictureType=!PictureType! *.%%i"
  29. )
  30. cd /d "%FolderOld%"
  31. for /f "delims=" %%i in ('dir /b /a-d !PictureType!') do (
  32.     echo %%i
  33.     set /a SelectWM=!random!%%!IndexWM!+1
  34.     ping -n 2 127.0.0.1 >nul
  35.     set /a SelectGD=!random!%%!IndexGD!+1
  36.     call magick.exe composite -gravity %%Position!SelectGD!%% "%%File!SelectWM!%%" "%%i" "%FolderNew%\%%i"
  37. )
  38. for /f "delims=" %%a in ('dir /b /ad') do (
  39.     echo --- %%a
  40.     if not exist "%FolderNew%\%%a" (
  41.         md "%FolderNew%\%%a"
  42.     )
  43.     pushd "%%a"
  44.     for /f "delims=" %%i in ('dir /b /a-d !PictureType!') do (
  45.         echo %%i
  46.         set /a SelectWM=!random!%%!IndexWM!+1
  47.         ping -n 2 127.0.0.1 >nul
  48.         set /a SelectGD=!random!%%!IndexGD!+1
  49.         call magick.exe composite -gravity %%Position!SelectGD!%% "%%File!SelectWM!%%" "%%i" "%FolderNew%\%%a\%%i"
  50.     )
  51.     popd
  52. )
  53. endlocal
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2