欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

批處理bat為照片批量添加隨機(jī)圖片水印(隨機(jī)圖片隨機(jī)位置)

 更新時間:2023年11月01日 11:08:07   作者:Batcher  
基于bat與ImageMagick實(shí)現(xiàn)的批量添加水印的工具,作者是bat之家的創(chuàng)始人比較厲害,喜歡學(xué)習(xí)bat的朋友看看

在吾愛論壇看到有人發(fā)布了一個圖形化的軟件,作用是批量給照片添加一個隨機(jī)的圖片水印。大致背景如下:

  • 例如,有1000張照片,格式包括png和jpg兩種(或者更多種)。
  • 有100張不同的水印圖片,需要把這些水印圖片隨機(jī)的添加到照片上。
  • 每張照片添加一張水印圖片,而且水印圖片需要出現(xiàn)在照片的不同位置上。
  • 使用PhotoShop錄制的功能無法完全滿足需求。

作為一名BAT腳本愛好者,我們當(dāng)然要動手嘗試一下啦。下載并安裝 ImageMagick 命令行工具,然后由簡到難一步一步來。

1、給單張照片的固定位置添加一個圖片水印。

magick.exe composite -gravity Center "水印圖片.png" "照片.jpg" "合成.jpg"

2、統(tǒng)計有多少張水印圖片,把它們編號依次保存在指定格式的變量里面。

@echo off
setlocal enabledelayedexpansion
set "FolderWM=C:\Test\水印"
set "IndexWM=0"
for /f "delims=" %%i in ('dir /a-d /b /s "%FolderWM%\*.png"') do (
    set /a IndexWM+=1
    set "File!IndexWM!=%%i"
)
set File
pause

由于BAT腳本里面沒有數(shù)組,這個方法可以理解為把水印圖片的文件名放入一個模擬數(shù)組里面。

3、把九個方位也放入一個模擬數(shù)組里面。

@echo off
setlocal enabledelayedexpansion
set "IndexGD=0"
set "ListDirect=NorthWest North NorthEast West Center East SouthWest South SouthEast"
for %%i in (%ListDirect%) do (
    set /a IndexGD+=1
    set "Position!IndexGD!=%%i"
)
set Position
pause

本例我們設(shè)置水印圖片可以出現(xiàn)在照片的九個方位:

左上、中上、右上

左中、正中、右中

左下、中下、右下

4、完整代碼

RandomPictureWatermark.bat

@echo offsetlocal enabledelayedexpansionREM 1、下載并安裝 ImageMagick 這個命令行工具REM https://imagemagick.org/script/download.php#windowsREM 2、根據(jù)自己電腦實(shí)際安裝路徑設(shè)置以下臨時環(huán)境變量set "path=C:\Program Files\ImageMagick;%path%" REM 設(shè)置待處理的照片所在的目錄set "FolderOld=C:\Test\照片"REM 設(shè)置水印圖片所在的目錄set "FolderWM=C:\Test\水印"REM 設(shè)置添加水印之后的照片所在的目錄set "FolderNew=C:\Test\合成" set "IndexWM=0"for /f "delims=" %%i in ('dir /a-d /b /s "%FolderWM%\*.png"') do ( set /a IndexWM+=1 set "File!IndexWM!=%%i") set "IndexGD=0"set "ListDirect=NorthWest North NorthEast West Center East SouthWest South SouthEast"for %%i in (%ListDirect%) do ( set /a IndexGD+=1 set "Position!IndexGD!=%%i") REM 假設(shè)待處理的照片有jpg、png兩種格式,如有需要可以繼續(xù)添加set "ListExt=jpg png"set "PictureType="for %%i in (%ListExt%) do ( set "PictureType=!PictureType! *.%%i") pushd "%FolderOld%"for /f "delims=" %%i in ('dir /b /a-d !PictureType!') do ( echo %%i set /a SelectWM=!random!%%!IndexWM!+1 ping -n 2 127.0.0.1 >nul set /a SelectGD=!random!%%!IndexGD!+1 call magick.exe composite -gravity %%Position!SelectGD!%% "%%File!SelectWM!%%" "%%i" "%FolderNew%\%%i")popdendlocal
@echo off
setlocal enabledelayedexpansion
REM 1、下載并安裝 ImageMagick 這個命令行工具
REM https://imagemagick.org/script/download.php#windows
REM 2、根據(jù)自己電腦實(shí)際安裝路徑設(shè)置以下臨時環(huán)境變量
set "path=C:\Program Files\ImageMagick;%path%"

REM 設(shè)置待處理的照片所在的目錄
set "FolderOld=C:\Test\照片"
REM 設(shè)置水印圖片所在的目錄
set "FolderWM=C:\Test\水印"
REM 設(shè)置添加水印之后的照片所在的目錄
set "FolderNew=C:\Test\合成"

set "IndexWM=0"
for /f "delims=" %%i in ('dir /a-d /b /s "%FolderWM%\*.png"') do (
    set /a IndexWM+=1
    set "File!IndexWM!=%%i"
)

set "IndexGD=0"
set "ListDirect=NorthWest North NorthEast West Center East SouthWest South SouthEast"
for %%i in (%ListDirect%) do (
    set /a IndexGD+=1
    set "Position!IndexGD!=%%i"
)

REM 假設(shè)待處理的照片有jpg、png兩種格式,如有需要可以繼續(xù)添加
set "ListExt=jpg png"
set "PictureType="
for %%i in (%ListExt%) do (
    set "PictureType=!PictureType! *.%%i"
)

pushd "%FolderOld%"
for /f "delims=" %%i in ('dir /b /a-d !PictureType!') do (
    echo %%i
    set /a SelectWM=!random!%%!IndexWM!+1
    ping -n 2 127.0.0.1 >nul
    set /a SelectGD=!random!%%!IndexGD!+1
    call magick.exe composite -gravity %%Position!SelectGD!%% "%%File!SelectWM!%%" "%%i" "%FolderNew%\%%i"
)
popd
endlocal

5、效果圖

寫在最后:

如果有需要讓水印圖片出現(xiàn)在照片里的位置“更加隨機(jī)”的話,可以不使用那九個方位。思路是,分別計算照片和水印圖片的長和寬,生成兩個大小合適的隨機(jī)數(shù)X和Y,把這一對X,Y當(dāng)成水印圖片左上角出現(xiàn)在照片里的位置坐標(biāo)。有興趣的朋友可以自行嘗試。

相關(guān)文章

最新評論