moviepy ValueError: Invalid value for quantizer: 'wu'

anaconda + windows10

突然作死,想用python画一下动态的图。

nozuonodie

我参考了网上的各种例程,放一个比较经典的吧:

import numpy as np
import mayavi.mlab as mlab
import moviepy.editor as mpy
from moviepy.editor import VideoClip

duration = 2   #动画的时间区间

#用mayavi构建一个figure容器

fig_myv = mlab.figure(size=(220,220), bgcolor=(1,1,1))
X, Y = np.linspace(-2,2,200), np.linspace(-2,2,200)
XX, YY = np.meshgrid(X, Y)
ZZ = lambda d: np.sinc(XX**2+YY**2)+np.sin(XX+d)


#用movie播放figure里的画面
#同时输出一个GIF图片

def make_frame(t):
    mlab.clf()  #清除figure容器(重置颜色)
    mlab.mesh(YY,XX,ZZ(2*np.pi*t/duration), figure=fig_myv)
    return mlab.screenshot(antialiased=True)

animation = mpy.VideoClip(make_frame, duration=duration)
animation.write_gif(".\sinc.gif", fps=20)

当然首先要配置上 mayavi等等,参考:http://blog.csdn.net/xlianglei/article/details/68925377

粘贴好,运行。。。

遇到了错误:


wu是什么鬼!

而且当我把引发错误的 VideoClip 语句注释掉之后就没问题了。类似地还有VideoFileClip,同样报错。

然后我百度了一大堆,貌似并没有什么人遇到这个问题。后来我谷歌了一下,发现有人遇到了类似问题。

原因在于,文件gif_writers.py中,quantizer默认会设置为“wu”,


仔细看文档中的注释

    """
    Writes the gif with the Python library ImageIO (calls FreeImage).
    
    For the moment ImageIO is not installed with MoviePy. You need to install
    imageio (pip install imageio) to use this.

    Parameters
    -----------
    opt

    """
嗯,我确实没有 
ImageIO

打开cmd:

pip install imageio


搞定了,效果如下:


PS: 之前在google上看到有人说在pilowmuliti.py中增加一句

elif quantizer == 'wu':
    quantizer = 0

我试了一下也行得通,而且有评论说0其实是最好的quantizer值。

但是我觉得还是能不改就不改默认文件吧,万一以后遇到新bug呢 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值