Ë
    Eü´jû  ã                   óH   — d dl mZ d dlmZ d dlmZ e G d„ de«      «       Zy)é    )Ú	dataclass)ÚClip)ÚEffectc                   ó’   — e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed<   dZeed<   dZeed	<   dZeed
<   dedefd„Zy)ÚCropaH  Effect to crop a clip to get a new clip in which just a rectangular
    subregion of the original clip is conserved. `x1,y1` indicates the top left
    corner and `x2,y2` is the lower right corner of the cropped region. All
    coordinates are in pixels. Float numbers are accepted.

    To crop an arbitrary rectangle:

    >>> Crop(x1=50, y1=60, x2=460, y2=275)

    Only remove the part above y=30:

    >>> Crop(y1=30)

    Crop a rectangle that starts 10 pixels left and is 200px wide

    >>> Crop(x1=10, width=200)

    Crop a rectangle centered in x,y=(300,400), width=50, height=150 :

    >>> Crop(x_center=300, y_center=400, width=50, height=150)

    Any combination of the above should work, like for this rectangle
    centered in x=300, with explicit y-boundaries:

    >>> Crop(x_center=300, width=400, y1=100, y2=600)

    NÚx1Úy1Úx2Úy2ÚwidthÚheightÚx_centerÚy_centerÚclipÚreturnc                 óþ  ‡ — ‰ j                   r+‰ j                  �‰ j                  ‰ j                   z   ‰ _        n6‰ j                   r*‰ j                  �‰ j                  ‰ j                   z
  ‰ _        ‰ j                  r+‰ j                  �‰ j                  ‰ j                  z   ‰ _        n6‰ j                  r*‰ j
                  �‰ j
                  ‰ j                  z
  ‰ _        ‰ j                  rC‰ j                  ‰ j                   dz  z
  ‰ j                  ‰ j                   dz  z   c‰ _        ‰ _        ‰ j                  rC‰ j                  ‰ j                  dz  z
  ‰ j                  ‰ j                  dz  z   c‰ _        ‰ _        ‰ j                  xs d‰ _        ‰ j                  xs d‰ _        ‰ j                  xs |j                  d   ‰ _        ‰ j
                  xs |j                  d   ‰ _        |j                  ˆ fd„dg¬«      S )zApply the effect to the clip.é   r   é   c                 ó²   •— | t        ‰j                  «      t        ‰j                  «      …t        ‰j                  «      t        ‰j                  «      …f   S )N)Úintr	   r   r   r
   )ÚframeÚselfs    €úS/root/workspace/ytshorts/venv/lib/python3.12/site-packages/moviepy/video/fx/Crop.pyú<lambda>zCrop.apply.<locals>.<lambda>L   s>   ø€ ˜%Ü�D—G‘G“œs 4§7¡7›|Ð+¬S°·±«\¼CÀÇÁ»LÐ-HÐHñ€ ó    Úmask)Úapply_to)
r   r   r
   r   r	   r   r   r   ÚsizeÚimage_transform)r   r   s   ` r   Úapplyz
Crop.apply.   s�  ø€ à�:Š:˜$Ÿ'™'Ð-Ø—g‘g §
¡
Ñ*ˆD�GØ�ZŠZ˜DŸG™GÐ/Ø—g‘g §
¡
Ñ*ˆDŒGà�;Š;˜4Ÿ7™7Ð.Ø—g‘g §¡Ñ+ˆD�GØ�[Š[˜TŸW™WÐ0Ø—g‘g §¡Ñ+ˆDŒGà�=Š=à—‘ §
¡
¨Q¡Ñ.Ø—‘ §
¡
¨Q¡Ñ.ð ˆDŒG�T”Wð
 �=Š=à—‘ §¡¨a¡Ñ/Ø—‘ §¡¨a¡Ñ/ð ˆDŒG�T”Wð
 —'‘'’,˜QˆŒØ—'‘'’,˜QˆŒØ—'‘'Ò)˜TŸY™Y q™\ˆŒØ—'‘'Ò)˜TŸY™Y q™\ˆŒà×#Ñ#óð �Xð	 $ó 
ð 	
r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r	   r
   r   r   r   r   r   r   r    © r   r   r   r      sh   … ñð8 €BˆƒNØ€BˆƒNØ€BˆƒNØ€BˆƒNØ€Eˆ3ÓØ€FˆCÓØ€HˆcÓØ€HˆcÓð"
˜$ð "
 4ô "
r   r   N)Údataclassesr   Úmoviepy.Clipr   Úmoviepy.Effectr   r   r&   r   r   ú<module>r*      s,   ðÝ !å Ý !ð ôH
ˆ6ó H
ó ñH
r   