Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт по конвертации графики (http://forum.oszone.net/showthread.php?t=323061)

hp1nt0 23-01-2017 16:55 2705589

Скрипт по конвертации графики
 
Здравствуйте, подскажите пожалуйста как написать скрипт по конвертации
серии WebP в анимированный WebP.
Я конвертирую серию изображений в анимированное изображение консольной утилитой webpmux.exe
Эта утилита не принимает подстановачные знаки.
То есть не *.webp не d%o03 не работают.
поэтому бат файл выглядит так:
Код:

.\bin\webpmux ^
        -frame .\out\0001.webp +100 ^
        -frame .\out\0002.webp +100 ^
        -frame .\out\0003.webp +100 ^
        -frame .\out\0004.webp +100 ^
        -frame .\out\0005.webp +100 ^
        -frame .\out\0006.webp +100 ^
        -frame .\out\0007.webp +100 ^
        -frame .\out\0008.webp +100 ^
        -o anim_container.webp

Не могли бы вы подсказать как мне сделать бат файл для любого количества изображений с любыми именами.
Главное не составлять список самому а доверить это системе. Что то вроде:
Код:

webpmux %folder% -o result.webp
Вот инструкция по утилите: https://developers.google.com/speed/webp/docs/webpmux
Заранее благодарю.

Iska 23-01-2017 18:32 2705610

Цитата:

Цитата hp1nt0
для любого количества изображений »

— возможно.

Цитата:

Цитата hp1nt0
с любыми именами. »

— это как? Как определить какие именно имена брать среди прочих, и как определить порядок поступления файлов в очередь?

hp1nt0 23-01-2017 18:53 2705616

Здравствуйте. Для всех файлов с расширением .webp в папке.
Как правило имена у меня от ImageMagick и они 000.webp, 001.webp и так далее.

megaloman 23-01-2017 18:58 2705619

Вот решение "в лоб":
батник генерирует новый батник с именем ~имя батника.bat, в котором по Вашему образцу формируется команда. Чтобы батник запустился, уберите rem, или запустите его сами вручную. Не знаю ограничения: сколько файлов за раз при этом можно обработать.

Код:

@echo off

>~%~nx0 Echo .\bin\webpmux ^^
FOR %%f IN (*.webp) DO >>~%~nx0 Echo        -frame ".\out\%%f" +100 ^^
>>"~%~nx0" Echo        -o anim_container.webp

rem Call "~%~nx0"

Либо, то же самое, но без образования нового файла (для работы уберите Echo)
Код:

@echo off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Set "Exe=.\bin\webpmux"
FOR %%f IN (*.webp) DO Set "Exe=!Exe! -frame ".\out\%%f" +100"
Set "Exe=%Exe% -o anim_container.webp"

Echo %Exe%
pause


Iska 23-01-2017 19:54 2705643

Цитата:

Цитата megaloman
Не знаю ограничения: сколько файлов за раз при этом можно обработать. »

Сколько поместится в командную строку. Зависит от версии ОС.

hp1nt0 23-01-2017 20:40 2705662

Здравствуйте. Спасибо большое. Оба решения это точно то что нужно.
Оба протестировал и всё супер. Немного подкорректировал под свои нужды:
Код:

@echo off
>~%~nx0 Echo .\bin\webpmux ^^
FOR %%f IN ( .\out\*.webp ) DO >>~%~nx0 Echo        -frame "%%f" +100 ^^
>>"~%~nx0" Echo        -o anim_container.webp

Ещё раз спасибо.


Время: 22:35.

Время: 22:35.
© OSzone.net 2001-