Source code for moviepy.video.fx.EvenSize

from dataclasses import dataclass

from moviepy.Clip import Clip
from moviepy.Effect import Effect


[docs] @dataclass class EvenSize(Effect): """Crops the clip to make dimensions even."""
[docs] def apply(self, clip: Clip) -> Clip: """Apply the effect to the clip.""" w, h = clip.size w_even = w % 2 == 0 h_even = h % 2 == 0 if w_even and h_even: return clip if not w_even and not h_even: def image_filter(a): return a[:-1, :-1, :] elif h_even: def image_filter(a): return a[:, :-1, :] else: def image_filter(a): return a[:-1, :, :] return clip.image_transform(image_filter, apply_to=["mask"])