Moviepy中如何设置图像锚点实现从中心缩放?
解决Moviepy缩放时向左上角变焦的问题
问题出在Moviepy的vfx.resize默认以左上角作为缩放锚点,所以缩放时画面会往左上角偏移。要实现中心缩放,只需给图像剪辑设置中心锚点即可:
修改你的代码,添加set_anchor((0.5, 0.5))来指定锚点为图像中心:
img_clip_pos = ("center", "center") clip = ImageClip(image_path) \ .set_anchor((0.5, 0.5)) # 设置缩放锚点为图像中心 .set_position(img_clip_pos) \ .set_duration(req_dur) clip = clip.fx(vfx.resize, lambda t: 1 + zoom_speed * t)
原理说明
- 锚点坐标是相对于剪辑自身的比例值:
(0,0)对应左上角,(0.5,0.5)对应正中心,(1,1)对应右下角。 - 设置中心锚点后,
vfx.resize会以图像中心为基准进行缩放,再配合set_position("center")就能保持画面始终在屏幕中心变焦。
内容的提问来源于stack exchange,提问作者mhmtemnacr
相关产品推荐
相关产品推荐

