[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[文件操作] 求高手帮忙看下webp命令怎么做批处理,非常谢谢

本帖最后由 linming6860 于 2018-10-8 17:47 编辑

从多张静态的webp图片创建一张动态的webp动画
webpmux -frame 1.webp +100 -frame 2.webp +100 -frame 3.webp +100 ........ -loop 0  -o mux.webp
(这个图片一般都几十张或者一百多,真的没法手动输入),固定格式是 -frame 1.webp +100,+100是时间可以自己修改

从动态的webp文件中获取第y帧
webpmux -get frame y  mux.webp -o frame_y.webp
(想把每帧都提取出来,比如查询出来有n张)

一次只能转换一个文件,所以想弄个bat,感激不尽

跟这个类似http://www.bathome.net/thread-14569-1-1.html

Photoshop CS 里有动作功能,创建一个动作就可以批量制作了,还可以暂停修改。不过CS里的动画有没有动作功能就不知道了。

TOP

看了下,PHOTOSHOP 里有个自动图像合并功能,可加入多种特效,帧频等。因该能满足。

TOP

回复 5# linming6860


    PHOTOSHOP 也可以批处理,它本来就有自动化批功能,不过偶一直没用过。

TOP

本帖最后由 523066680 于 2018-10-8 22:18 编辑

webpmux 的google资源被墙了,但是可以通过 百度快照间接获得
百度快照-developers.google.com/speed/webp

具体的,工具集的下载链接请点击 Download for Windows

逐帧拆解示例(代码第二行,先把解压后的工具集目录添加到PATH环境变量,方便调用)
  1. @echo off &setlocal enabledelayedexpansion
  2. set path=%path%;.\libwebp-1.0.0-windows-x86\bin
  3. set file=cell_animation.webp
  4. for /f "tokens=1 delims=:" %%a in ('webpmux -info cell_animation.webp ^|more +5') do (
  5.     set /a num=%%a
  6.     webpmux -get frame !num! %file% -o frame-!num!.webp
  7. )
  8. pause
复制代码
或者
  1. @echo off
  2. set path=%path%;.\libwebp-1.0.0-windows-x86\bin
  3. set file=cell_animation.webp
  4. for /f "tokens=2 delims=:" %%a in ('webpmux -info cell_animation.webp ^|find "frames:"') do set /a max=%%a
  5. for /l %%n in (1,1,%max%) do webpmux -get frame %%n %file% -o frame-%%n.webp
  6. pause
复制代码
多张webp图片合并成一张webp动图
  1. @echo off &setlocal enabledelayedexpansion
  2. set path=%path%;.\libwebp-1.0.0-windows-x86\bin
  3. set /a max=29
  4. REM create long long command
  5. for /l %%a in (1,1,%max%) do set arg=!arg! -frame frame-%%a.webp +100
  6. webpmux %arg% -o merge.webp
  7. pause
复制代码
或者也可以通过 image-magick 先合成 gif 再用 gif2webp 转换。(magick 可以处理单帧的webp图片,暂时不支持webp动图)
  1. magick convert *.webp test.gif
  2. REM 注意,使用这种*.webp的形式合并,每一帧的编号必须是补0的形式,否则会乱序
  3. gif2webp -lossy test.gif -o out.webp
复制代码
综合型编程论坛
Writing Code That Nobody Else Can Read.

TOP

补充,多张合并的部分,批处理字符串存储容量有限,做了个测试
  1. set /a max=500
  2. for /l %%a in (1,1,%max%) do set arg=!arg! -frame frame-%%a.webp +100
  3. echo %arg%
复制代码
显示最多可以存储到第 307 帧,之后的被丢弃
所以一两百帧没问题的
综合型编程论坛
Writing Code That Nobody Else Can Read.

TOP

回复 7# 523066680


    非常谢谢版主,辛苦啦!

TOP

本帖最后由 linming6860 于 2018-10-9 11:00 编辑

回复 7# 523066680


版主,合并多张的,webpmux 代码不行 ,提示 Action must be specified before other arguments

image-magick 先合成 gif 不支持alpha:lol ,再辛苦你有空的时候看看哪里不对  这个 webpmux 帮助里的格式是  webpmux -frame FRAME_OPTIONS [-farme ...][-loop LOOP_COUNT] -o OUTPUT

TOP

本帖最后由 523066680 于 2018-10-9 12:07 编辑

回复 10# linming6860

    我这里测试过了有效果才发的代码。
以及刚才拷贝了论坛那段到本地再试一次,无误。
你下载我发的工具集链接试试?
综合型编程论坛
Writing Code That Nobody Else Can Read.

TOP

回复 11# 523066680


    可以了真神奇 谢谢

TOP

返回列表