[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

【问题描述】

https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A
使用这篇文章里面的代码,在照片目录下的多张图片可以直接添加上。
但有很多文件夹,不同的文件夹里的图片都要改,怎么写?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

【解决方案】

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
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表