You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MoviePy传入PIL图像创建ImageClip时报AttributeError: shape错误如何解决

报错根因

AttributeError: shape 触发的原因非常明确:MoviePy的ImageClip构造器默认仅支持接收numpy数组格式的图像输入,你直接传入的是PIL Image类的实例,而PIL图像本身没有shape属性,所以会触发属性缺失报错。
你将图像存到本地再读取时,MoviePy内部会自动把读取到的图像数据转换为numpy数组,因此可以正常运行。

解决方案

不需要修改整体业务逻辑,仅需要在传入ImageClip前,把PIL图像手动转换为numpy数组即可,全程都在内存中完成,无需本地文件中转。

  1. 首先确保你已经导入numpy库:
import numpy as np
  1. 把你代码中创建ImageClip的行修改为:
logo = (ImageClip(np.array(frame))
      .set_duration(video_duration)
      .set_position((0,0.10), relative=True))

补充说明

如果你的PIL图像是带透明度的RGBA模式,转换后的numpy数组会自动保留alpha通道,叠加到视频上的时候透明度效果也会正常生效,不需要额外处理。
如果出现颜色显示异常的情况,只需要额外加一步通道顺序转换即可:np.array(frame)[:, :, ::-1],把RGB转为BGR格式适配底层渲染逻辑即可。

内容的提问来源于stack exchange,提问作者Bambi2k21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:45:05