Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Нужен счётчик с лидирующими нулями

Ответить
Настройки темы
CMD/BAT - [решено] Нужен счётчик с лидирующими нулями

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, я делаю ватермарки на 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.
Выглядит примерно так:

Как можно видеть, слева при переходе с 9 до 10 изображение прыгает туда-сюда.
Был бы рад подсказке как сделать что бы переменная !FrameNumber! предварялась нулём
если в папке менее 100 изображений и двумя нулями если изображений более 100.
то есть 01 / 02 / 03 и т.д.
и 001 / 002 / 003 и т.д.

Отправлено: 16:37, 27-12-2016

 

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата alpap:
все работает, переменная %FrameNumbe% уже записана в %m% и оперировать надо уже ей »
Ааааа! Вот теперь я понял. Спасибо, похоже что это именно то что надо.

ЗЫ: Решено я на всякий случай пока не ставлю так как буду сидеть над скриптом через пару дней.
Вдруг возникнет потребность уточнить что либо. Хотя вроде проблем не ожидается.

Отправлено: 11:49, 28-12-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
setlocal enableextensions enabledelayedexpansion
for %%f in ( "%SequenceFolder%\*.png" ) do (
set/a FrameNumber+=1& set "FrameDigits=00!FrameNumber!"
.\bin\magick -size 100x14 xc:none -gravity center ^
          -stroke black -strokewidth 2 -annotate 0 "!FrameDigits:~-3! of %FileNumbA%" ^
          -background none -shadow 100x3+0+0 +repage ^
          -stroke none -fill white     -annotate 0 "!FrameDigits:~-3! of %FileNumbA%" ^
          %%f  +swap -gravity southwest -geometry +0-3 ^
          -composite  .\img\1seq\%%~nxf
set "!FrameDigits:~-3!=FrameNumber"
)
Так работает.

Отправлено: 16:04, 28-12-2016 | #12


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем спасибо. Способ предложенный alpap решил проблему.
За что ему отдельное спасибо.
Финальный код не факт что каноничен но главное - работает.
Код: Выделить весь код
setlocal enableextensions enabledelayedexpansion
set /a LeadDigits=0
set /a Cutter=2
if %FileNumbA% GEQ 100 set "LeadDigits=00"& set "Cutter=3"
for %%f in ( "%SequenceFolder%\*.png" ) do (
set/a FrameNumber+=1& set "FrameDigits=%LeadDigits%!FrameNumber!"
.\bin\magick -size 100x14 xc:none -gravity center ^
          -stroke black -strokewidth 2 -annotate 0 "!FrameDigits:~-%Cutter%! of %FileNumbA%" ^
          -background none -shadow 100x3+0+0 +repage ^
          -stroke none -fill white     -annotate 0 "!FrameDigits:~-%Cutter%! of %FileNumbA%" ^
          %%f  +swap -gravity southwest -geometry +0-3 ^
          -composite  .\img\1seq\%%~nxf
set "!FrameDigits:~-3!=FrameNumber"
)

Отправлено: 17:51, 28-12-2016 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Нужен счётчик с лидирующими нулями

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
нужен счётчик на сайт на.. oIo_DeN_oIo Вебмастеру 3 05-12-2007 01:22
Счётчик производительности *Processor* -MAXX- Автоматическая установка Windows 2000/XP/2003 9 03-10-2006 15:59
Счётчик на ярлычок MrGreeN Microsoft Windows 95/98/Me (архив) 3 15-10-2003 17:16
Счётчик - как сделать? diter Вебмастеру 5 03-10-2003 17:05
Счётчик посещений Evita Вебмастеру 13 27-08-2002 13:59




 
Переход