找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18115|回复: 1

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

[复制链接]
发表于 2023-11-8 19:23:50 | 显示全部楼层 |阅读模式
【问题描述】

https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A
使用这篇文章里面的代码,在照片目录下的多张图片可以直接添加上。
但有很多文件夹,不同的文件夹里的图片都要改,怎么写?
 楼主| 发表于 2023-11-8 19:25:15 | 显示全部楼层
【解决方案】

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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 08:56 , Processed in 0.017313 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表