png序列帧转换WebP动画

本文介绍如何使用img2webp工具将PNG序列帧文件转换为WebP动画,并提供了一个shell脚本以简化转换流程。

最近项目要用webp格式展示动画(webp格式的优点在这我就不说了,baidu很多),由于UI同学无法给予我们支持,只能给我们png序列帧文件,所以接下来的事情需要开发自己转换,所有有了这篇的总结:进入正题

对于png 、jpg、 gif 等格式转换webp ,google给提供了命令行工具,下载地址:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html
可以找到对应系统版本,在这里我用的是libwebp-1.0.0-rc2-mac-10.13.tar.gz ,所以我是在mac 环境下进行操作的

工具介绍

下载下来后,解压文件夹,目录如下:
这里写图片描述

bin文件夹下就是给我们提供的工具:

这里写图片描述

这些方法我不是全部了解,只知道常用的:cwebp、dwebp、gif2webp、imag2webp、webpmux

但是它给我们提供了doc和README文档,里面都有对工具的说明,我看的是根目录下的README文档,里面是说明的集合

由于我这次要找的是png序列帧转换webp动画,所以我在文档中找到了这样一个方法:

Animation creation tool:
========================
The utility 'img2webp' can turn a sequence of input images (PNG, JPEG, ...)
into an animated WebP file. It offers fine control over duration, encoding
modes, etc.

Usage:  //使用

  img2webp [file-level options] [image files...] [per-frame options...]

//还给了例子
example: img2webp -loop 2 in0.png -lossy in1.jpg -d 80 in2.tiff -o out.webp

意思就是:img2webp可以转换图像序列(PNG, JPEG等格式)
进入一个动画的WebP文件

见到这句话感觉眼都亮了,赶快试一下效果

工具的安装:

先配置下环境变量,配置到bin,bin下所有工具都可以使用,下面是我存放的位置,需要替换成自己的

export WEBP=/Users/jiangshujing/Downloads/libwebp-1.0.0-mac-10.13/bin

//将WEBP 添加到PATH中
export PATH=${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${JAVA_HOME}:${WEBP}

配置完成后,就可以用这些工具了,
我们打开终端,输入命令
如:

img2webp -loop 0 -lossy imag1.png imag2.jpg imag3.jpg -o out.webp

ok webp动画转换搞定了

操作符:

File-level options (only used at the start of compression):
 -min_size ............ minimize size
 -loop <int> .......... loop count (default: 0, = infinite loop)
 -kmax <int> .......... maximum number of frame between key-frames
                        (0=only keyframes)
 -kmin <int> .......... minimum number of frame between key-frames
                        (0=disable key-frames altogether)
 -mixed ............... use mixed lossy/lossless automatic mode
 -v ................... verbose mode
 -h ................... this help
 -version ............. print version number and exit

Per-frame options (only used for subsequent images input):
 -d <int> ............. frame duration in ms (default: 100)
 -lossless  ........... use lossless mode (default)
 -lossy ... ........... use lossy mode
 -q <float> ........... quality
 -m <int> ............. method to use
快速输出webp 脚本文件

由于序列帧比较多,不能手动一个一个敲,我写了个shell脚本,可以直接使用(对shell 不是很熟悉,不过功能可以实现)

一下为shell脚本内容,之后我会上传的

read -p "Please input directory path : " path
echo "directory path is :" $path

filelist=`ls $path`
echo $path  
imgs=''
#echo $path
for file in $filelist
do 
#这里只操作png文件
if [ -f $file ] && [ "${file##*.}" = "png" ]
then

imgs=$imgs$file" "
fi
done
img2webp -loop 0 -lossy $imgs -o $path"/"out.webp #执行命令
shell 脚本使用(img2webp.sh)

在终端中执行 img2webp.sh 文件,提示输入要转换的序列帧文件夹路径,然后回车,会在根目录生成out.webp文件,ok了

$ /Users/jsj/Desktop/img2webp.sh 

Please input directory path : /Users/jsj/Downloads/imags
方法二

png序列帧转换webp动画,除了使用goolge提供的img2webp 工具,还可以使用 cwebp + webpmux,先将png文件通过cwebp工具分别进行转换为webp静态序列,质量压缩等自己可以根据需求转换,然后在用webpmux 工具,将所有的webp静态序列打包成webp动态动画,这个过程我也有写成shell脚本,名字为webpmux.sh ,使用方法同img2webp.sh一样

此方法是通过 https://www.jianshu.com/p/8dc745523e03 给出的办法,在这里也谢谢作者

对于webp文件,Android用Fresco加载的

工具地址:https://download.youkuaiyun.com/download/hjiangshujing/10449690

根据提供的文件信息,我们可以推断出有关“序列帧浏览器”这一主题的知识点。首先,“序列帧”一词通常是指一系列按顺序排列的图像帧,它们在连续播放时会产生动画效果,类似于早期的电影放映机或者现代的动画制作流程。因此,序列帧浏览器可能是一个特殊的软件工具,它能够加载和播放这一系列的图像帧,以查看或检查动画序列的效果。 根据这个背景,我们可以进一步挖掘以下知识点: 1. **序列帧的定义和应用** - 序列帧是连续帧的集合,用于创造动态效果。 - 它们广泛应用于动画制作、电影、游戏开发、网页设计等多个领域。 - 在计算机中,序列帧可以以图片序列(如PNG、JPG等)或视频文件(如AVI、MP4等)的形式存在。 2. **序列帧浏览器的功能** - 序列帧浏览器允许用户打开和查看图像序列。 - 它能提供一个连续播放功能,模拟动画播放效果。 - 此类工具可能具备帧速率调整、暂停、跳帧等控制功能。 - 可能还能加载不同的图像序列文件,如GIF、FLI、FLC等格式。 3. **技术细节** - 浏览器需要解码连续的图像文件,并将它们快速连续显示,从而形成动画效果。 - 在性能方面,它可能需要一定的处理能力和优化以保证流畅的播放。 - 高级的序列帧浏览器可能还支持对帧进行编辑、调整、颜色校正等操作。 4. **应用场景** - 在动画制作中,序列帧浏览器可用来预览动画帧序列,确保每一帧的动画效果符合设计要求。 - 在网页设计中,设计师可以用序列帧浏览器预览网页动画效果,检查动画流程是否自然。 - 在游戏开发中,动画师和设计师可以用它来查看角色和物体动画,确保动画的流畅度和准确性。 5. **相关工具和软件** - 有很多不同的软件可以实现序列帧浏览器的功能,比如专门的动画软件、图像编辑软件,甚至一些播放器软件的序列帧播放插件。 - 常见的序列帧浏览器可能包括Adobe Animate、Maya、3ds Max、Blender等,它们都内建有播放序列帧的功能。 - 在线工具和小程序也可能提供基本的序列帧浏览功能,如某些提供GIF图像编辑的在线服务。 6. **技术挑战和发展趋势** - 随着技术的发展,序列帧浏览器也在增加更多高级功能,比如支持更多格式、提供更流畅的播放体验、集成更多的编辑和优化工具。 - 未来的发展趋势可能包括集成人工智能技术,比如通过AI分析序列帧来自动检测并修正动画中的错误。 7. **使用案例** - 在视频制作的后期阶段,使用序列帧浏览器可以对关键帧之间的过渡进行微调。 - 在网页动画设计时,利用序列帧浏览器可以实时观察到动画在浏览器中的表现,进行必要的调整。 - 在游戏设计中,序列帧浏览器可以用来检查角色动画的细节,确保角色的动作符合游戏世界的设定。 通过以上分析,我们能对“序列帧浏览器”这一概念有一个全面的理解,涵盖了它的定义、应用、技术细节、应用场景、相关工具、技术挑战以及使用案例等方面的知识点。希望这些内容能够为需要使用或开发序列帧浏览器的用户带来帮助。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值