hp1nt0
27-12-2016, 16:37
Здравствуйте, я делаю ватермарки на gif изображения.
Код выглядит так:
REM ### PROCCESS ANIMATION START ###
set FileNumbA=0
for %%e in ("%SequenceFolder%/*.png") do ( set /a FileNumbA+=1 )
echo Number files in directory %FileNumbA%
REM ### PROCCESS ANIMATION START ###
setlocal enableextensions enabledelayedexpansion
set /a "FrameNumber=01"
for %%f in ( "%SequenceFolder%\*.png" ) do (
.\..\bin\magick -size 100x14 xc:none -gravity center ^
-stroke black -strokewidth 2 -annotate 0 "!FrameNumber! of %FileNumbA%" ^
-background none -shadow 100x3+0+0 +repage ^
-stroke none -fill white -annotate 0 "!FrameNumber! of %FileNumbA%" ^
%%f +swap -gravity southwest -geometry +0-3 ^
-composite .\img\1seq\%%~nxf
set /a "FrameNumber+=01"
)
REM ### PROCCESS ANIMATION START ###
for %%g in ( ".\img\1seq\*.png" ) do (
.\..\bin\magick -size 100x14 xc:none -gravity center ^
-stroke black -strokewidth 2 -annotate 0 "%WatermarkText%" ^
-background none -shadow 100x3+0+0 +repage ^
-stroke none -fill white -annotate 0 "%WatermarkText%" ^
%%g +swap -gravity southeast -geometry +0-3 ^
-composite .\img\2seq\%%~nxg )
Логика следующая: берём папку в которой лежат картинки.png
Считаем общее количество картинок
и начинаем на каждую по очереди наносить ватермарк.
В конце серию картинок преобразуем в gif.
Выглядит примерно так:
http://i.imgur.com/7hIrlFk.gif
Как можно видеть, слева при переходе с 9 до 10 изображение прыгает туда-сюда.
Был бы рад подсказке как сделать что бы переменная !FrameNumber! предварялась нулём
если в папке менее 100 изображений и двумя нулями если изображений более 100.
то есть 01 / 02 / 03 и т.д.
и 001 / 002 / 003 и т.д.
Код выглядит так:
REM ### PROCCESS ANIMATION START ###
set FileNumbA=0
for %%e in ("%SequenceFolder%/*.png") do ( set /a FileNumbA+=1 )
echo Number files in directory %FileNumbA%
REM ### PROCCESS ANIMATION START ###
setlocal enableextensions enabledelayedexpansion
set /a "FrameNumber=01"
for %%f in ( "%SequenceFolder%\*.png" ) do (
.\..\bin\magick -size 100x14 xc:none -gravity center ^
-stroke black -strokewidth 2 -annotate 0 "!FrameNumber! of %FileNumbA%" ^
-background none -shadow 100x3+0+0 +repage ^
-stroke none -fill white -annotate 0 "!FrameNumber! of %FileNumbA%" ^
%%f +swap -gravity southwest -geometry +0-3 ^
-composite .\img\1seq\%%~nxf
set /a "FrameNumber+=01"
)
REM ### PROCCESS ANIMATION START ###
for %%g in ( ".\img\1seq\*.png" ) do (
.\..\bin\magick -size 100x14 xc:none -gravity center ^
-stroke black -strokewidth 2 -annotate 0 "%WatermarkText%" ^
-background none -shadow 100x3+0+0 +repage ^
-stroke none -fill white -annotate 0 "%WatermarkText%" ^
%%g +swap -gravity southeast -geometry +0-3 ^
-composite .\img\2seq\%%~nxg )
Логика следующая: берём папку в которой лежат картинки.png
Считаем общее количество картинок
и начинаем на каждую по очереди наносить ватермарк.
В конце серию картинок преобразуем в gif.
Выглядит примерно так:
http://i.imgur.com/7hIrlFk.gif
Как можно видеть, слева при переходе с 9 до 10 изображение прыгает туда-сюда.
Был бы рад подсказке как сделать что бы переменная !FrameNumber! предварялась нулём
если в папке менее 100 изображений и двумя нулями если изображений более 100.
то есть 01 / 02 / 03 и т.д.
и 001 / 002 / 003 и т.д.