
    i                     6   d dl mZmZmZmZ d dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZ e	j        d          Zedz  Zedz  Zg dZd\  ZZdZd	Z eeez            Zd
 Zd ZddZd ZddZd Zedk    rej        dd         peD ]Z  ee            dS dS )    )ImageImageEnhanceImageFilter	ImageDrawNz/home/ubuntu/lobbytrackerzpublic/cards/generatedzpublic/media)zgerardo-wertheinzjavier-mileizjorge-macrizpatricia-bullrichzwaldo-wolff)i  i      g@c                     dd| z
  dz  z
  S )N       )xs    +scripts/make_remaining_impact_animations.pyease_out_cubicr      s    a1qj(    c                    |dk    r| S t          j        |           }t          j        |          }t          |          }t          j        |d d d d df         |d          |d d d d df<   |d d d d df         |d d d d df<   t          j        |d d d d df         | d          |d d d d df<   t          j        |          S )Nr   r	   axis   )nparray
zeros_likeintrollr   	fromarray)imamtarroutas        r   	rgb_splitr      s    
Avvby
C"-,,cCaws111QQQq5z!+++C!!!AJAAAaaaE
S111QZrwWZ[\[\[\]^]^]^_`[`WacdbdjkOlOlOlC!!!AJ?3r      c                 0   t          j        d| j        d          }t          j        |          }t          d| j        d          D ])}|                    d|f| j        |fgddd|fd           *t          j	        | 
                    d          |          S )NRGBAr   r   r   r   r      r	   fillwidth)r   newsizer   Drawrangeheightliner'   alpha_compositeconvert)r   alphaoverlaydys        r   add_scanlinesr4      s    Ifbgy11GY^G5L5L11bi##^^QVVaUBHQ<,@!Ae}\]V%^%^%^%^ F!3!3W===r   c                 ^   t          j        |                               t           j                  }t           j        dt
          dt          f         \  }}t          dz  t
          dz  }}t          j        ||z
  t          dz  z  dz  ||z
  t
          dz  z  dz  z             }t          j        d|dz
  dz  z
  dd          }|d d d d d dfxx         |d d d d d f         z  cc<   t          j
        t          j        |dd	                              t           j                  d
          S )Nr   r   r	   g      ?g
ףp=
?gRQ?      ?r
      r"   )r   r   astypefloat32mgridHWsqrtclipr   r   uint8)r   r   yyxxcxcydistmasks           r   add_vignetterF      s   
BJ''Crx!AaC/@B!AaCR"	2b51Q3-!#beac]Q$66	7	7DbgadTXHXFXY]^a>b>b!!!BQBKKKaaa$hKKK?273q--44RX>>vFFFr   r6   c                 x   t          j        |                               t           j                  }|d d d d dfxx         dz  cc<   |d d d d dfxx         dz  cc<   |d d d d dfxx         dz  cc<   t	          j        t          j        |dd                              t           j                            S )Nr   g333333?r	   gzG?r   g?r7   )r   r   r8   r9   r   r   r>   r?   )r   strengthr   s      r   	red_graderI   !   s    
BJ''CQQQqqqUT)93qqq1u:::t;K:::SQRQRQRSTSTSTUVQVZZZY]M]ZZZ?273q--44RX>>???r   c                   2 t          j        t          t          |                     dz             t          |  dz  }|                                st          |          t          |  dz  }|                                rt          j	        |           |
                    d           t          |  dz  }t          |  dz  }t          j        |                              d          }d	}t          ||j        z  |j        z            }|                    ||ft          j        j                  }|                    t(          t          t(          |j        z  |j        z            ft          j        j                  }	|	j        t*          k     rN|                    t          t*          |j        z  |j        z            t*          ft          j        j                  }	|	j        t(          z
  d
z  }
|	j        t*          z
  d
z  }|	                    |
||
t(          z   |t*          z   f                              t1          j        d                    }	g d}d |D             d |D             z  }t5                      }|D ]7}t          |t6          z            }|                    |dz
  ||dz   g           8t;          t<                    D ]}|t<          dz
  z  }|t6          z  2dd|z  z   }|D ]0}t?          ddt          2|z
            dz  z
            }|d|z  z  }1d
t?          2fd|D                       z   }t          j         | |          }t          j         | |          }tC          |	"                                          }tG          j$        |          %                    d          }tG          j&        |          %                    d          }t          j'        dt(          t*          fd          }|(                    |d           |                    d          }t          j'        dt(          t*          fd          }tS          j*        |          }t;          d          D ]}|dz  tV          j,        z  dtW          j-        2d
z            z  z   }t(          d
z  tW          j.        |          dz  z   }t*          d
z  tW          j-        |          dz  z   }|/                    t(          d
z  t*          d
z  f||fgdd !           t;          d"          D ]}||d#z  z   d$z  d%k     rt          j         d&t(          d&z
            } g }!d}"|"t*          k     rP|!0                    | t          j         d'd(          z   |"f           |"t          j         d)d*          z  }"|"t*          k     P|/                    |!d+d
!           t          j1        ||          }t          ||z            }#t          ||z            }$|                    |#|$ft          j        j                  }%tG          j$        |%          %                    d,          }%tG          j2        |%          %                    d-          }%tg          ti          d2d.z                      }&t(          |#z
  d
z  |z   } d/t          d0|z            z
  }'t          t*          d1z   t*          d1z   |'z
  |&z  z
            |z   }"t          j'        d|#d&z   |$d&z   fd          }(tS          j*        |(          })|)5                    d2d2|#d3z   |$d3z   gd4d56           |(                    t1          j        d2                    }(|1                    |(| d(z
  |"d(z
  f           |(                    |%                    d          | |"f           |}*||v r5t          j1        |*t          j'        dt(          t*          fd7                    }*|d8 |D             v r5t          j1        |*t          j'        dt(          t*          fd9                    }*||v rtm          |*                    d          t          j         d%d                                        d          }*to          j8        |*          }+t;          d           D ]},t          j         dt*          d:z
            }-t          j         d d:          }.t          j         d;d<          }/to          j9        |+|-|-|.z   d d d d f         |/d=          |+|-|-|.z   d d d d f<   t          j:        |+d          }*to          j8        |*          ;                    tn          j<                  }+tn          j         =                    dd#|+j>        d d
                   ;                    tn          j<                  }0to          j?        |+d d d d d d"f         |0d d d d d f         z   dd>          |+d d d d d d"f<   t          j:        |+;                    tn          j@                  d          }*t          |*d?          }*t          |*          }*|*                    d          C                    |d@|dAdBz  dCD           t          jE        dEdFdGt          t6                    dHt          |dIz            dJdKdLdMdNdOt          |          gdt          jG        t          jG        P           dQ|  dR}1t          jE        dEdFdHt          |          dJdS|1gdt          jG        t          jG        P           t          jE        dEdFdHt          |          dH|1dTdUt          |          g	dt          jG        t          jG        P           t          | ||           d S )VNl    z-gpt-image2-v1.pngz-impact-framesT)parentsz-impact-short.mp4z-impact-short.gifRGBi  r      )皙?g?g@g
@c                 <    h | ]}t          |t          z            S r   r   FPS.0bs     r   	<setcomp>zmake.<locals>.<setcomp>7   s"    ,,,#ae**,,,r   c                 B    h | ]}t          |t          z            d z   S )r	   rP   rR   s     r   rU   zmake.<locals>.<setcomp>7   s&    -J-J-Jqc!C%jjl-J-J-Jr   r	   r6   g?r   gp=
ף?g)\(?c                 D    g | ]}t          |z
            d k     rdndS )g)\(?
   r   )abs)rS   rT   secs     r   
<listcomp>zmake.<locals>.<listcomp>@   s/    AAAa3s1u::d??RRAAAr   g{Gz?rN   )   r   r   )r   r   r"   r#   rX   g?i  )r7   r   r         r%   r
            2   i   Z      )r7   #   rf   P   g?gQ?g333333?   A   rg            )r7   r   r   F   )radiusr&   )r7   r   r   R   c                     h | ]}|d z   S )r   r   )rS   fs     r   rU   zmake.<locals>.<setcomp>X   s    +++1+++r   )r   r   r   x      i-   r   r7   r]   frame_03dz.png_   )qualityffmpegz-yz
-frameratez-izframe_%03d.pngz-vfzformat=yuv420pz	-movflagsz
+faststartz-crf20)checkstdoutstderrz/tmp/z_palette.pngz,fps=12,scale=360:-1:flags=lanczos,palettegenz-filter_complexzRfps=12,scale=360:-1:flags=lanczos[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=3)IrandomseedrY   hashSRC_DIRexistsFileNotFoundErrorOUT_DIRshutilrmtreemkdirr   openr/   r   r,   r'   resize
ResamplingLANCZOSr<   r;   cropfilterr   GaussianBlursetrQ   updater+   NmaxrandintrI   copyr   Contrastenhance
Brightnessr(   paster   r*   mathtausincosr-   appendr.   	Sharpnessr   minrounded_rectangler   r   r   r   r   r8   int16normalshaper>   r?   r4   rF   save
subprocessrunstrDEVNULLprint)3slugsrc_pathframesmp4gifsrcbase_card_wbase_card_h	card_basebg_srcleftupperbeatsflash_framesglitch_framesrT   rq   itzoompulseshakedxdybgcanvasr1   r2   kangx2y2r   ptsr3   cwchcardentery_finalshadowsdframer   _r@   hhoffnoisepaletterZ   s3                                                     @r   maker   %   sG   
KDJJ*,---0000H???$5h$?$??d****F}}-f---
LLL4****C4****C
8$$U++CK[%;CI%E!F!F[jj+k2E4D4LMMI::qQsz\#)3445u7G7OPPF}qzz3q{3:566q95;K;STT
,q.1	DV]1_q$8e;;U46%'233::;;STV;W;WXXF


E,,e,,,-J-JE-J-J-JJL%%M 8 8
ae**m**AaC!A#;77771XX (K (K
QqS'qu3aZ 	@ 	@Aa#c!e**T/)**EDE%K,?DDAAAA5AAABBB>5&''FNE6%,H,HV[[]]##(=b(A(A(I(I$(O(ORT`TklnToToTwTwx|T}T}QSy!uX..R0F0F0Fv~~^dOeOe	&!Ay11Y^G5L5L1r 	D 	DA2txDHSUOO 33C!DHSMM#<M8MRRSTURUVZV^_bVcVcdgVgRgrFFQqS1Ir"g&\FCCCCq 	: 	:A!A#rz!||.AbD))r3Q1ccJJ&.R"8"8 8;<<<aPRSVAWAW>Wa ccsq999$VG44{4  ST)9%:%:"r"gu'7'?@@"4((0066\=STX=Y=Y=a=abf=g=gS3t8__--!B$2qs3rRSt99}wX[\]^`\`bcdfbfgnbnpuau\uXvXvwyXyVWyBr"ui88Y^F=S=S"
bBrE"R%0,OOOX^XeXefqf~  @B  gC  gC  YD  YDQWvqtAbDk222FLLfAUAUWXYZV[4\4\4\E$9%6STUVRWXdAeAe$f$fe++l+++++53HPUPYZ`bcdeafgrPsPs3t3tUEMM%00&.22F2FGGOOPVWWEC1XX H H>!AbD))fnQr.B.B2WZ[]H^H^C"$'#bBhqqql*;CQ"G"G"GBr"uHQQQqqqL!!/#f--EHUOO""28,,BI4D4DQqSUTUSU4W4W4^4^_a_g4h4heGC!!!BQBKaaa$h7#>>AAAaaaFeoVYV`V`acaiVjVjkqFrFrE"%%\%-@-@ue!!&)=!)=)=)=)="=r!JJJJNHT,s3xxSHXAX=Y=YZ_`pq|  ~J  KQ  RV  WZ  [^  W_  W_  `  hl  u  uG  PZ  Pb  c  c  c  c&D&&&GNHT$s3xx6delmuy  CM  CU  ^h  ^p  q  q  q  qNHT$s3xxW=N  Pd  eh  il  em  em  n  vz  CM  CU  ^h  ^p  q  q  q  q	$Sr   __main__r	   )r    )r6   )!PILr   r   r   r   numpyr   r~   r   pathlibr   sysr   PathROOTr   r   SLUGSr<   r;   rQ   DURr   r   r   r   r4   rF   rI   r   __name__argvr   r   r   r   <module>r      s   ; ; ; ; ; ; ; ; ; ; ; ; B B B B B B B B B B B B B B B B B B B B B B B B B B B BW\-..%%^YYY!#c#g,, ( ( (     > > > >
G G G@ @ @ @C C CJ Z!""&33d 33r   