
    ki                        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 e	j        d          Z e	j        d          Ze                    dd            e	j        d          Z e	j        d          Zd	\  ZZd
ZdZ eeez            Z ej        d            ej        e                              d          ZdZ eeej        z  ej        z            Ze                     eefej!        j"                  Z#e                     e eeej        z  ej        z            fej!        j"                  Z$e$j        ek     r;e                      eeej        z  ej        z            efej!        j"                  Z$e$j        ez
  dz  Z%e$j        ez
  dz  Z&e$'                    e%e&e%ez   e&ez   f          (                     ej)        d                    Z$d Z*d Z+d]dZ,d Z-d^dZ.g dZ/d e/D             d e/D             z  Z0 e1            Z2e/D ].Z3 ee3ez            Z4e25                    e4dz
  e4e4dz   g           / e6e          D ]^Z7e7edz
  z  Z8e7ez  Z9dde8z  z   Z:e/D ](Z3 e;d d e<e9e3z
            dz  z
            Z=e:de=z  z  Z:)d Z>e/D ]Z3 e<e9e3z
            dk     rd Z>e>dz  Z> ej?        e> e>          Z@ ej?        e> e>          ZAe$B                                ZC e.eCd          ZC ejD        eC          E                    d!          ZC ejF        eC          E                    d"          ZC ejG        deefd#          ZHeHI                    eCd$            ejG        d%eefd&          ZJ ejK        eJ          ZL e6d           D ]|ZMeMd z  ejN        z  d' ejO        e9dz            z  z   ZPedz   ejQ        eP          d(z  z   ZRedz   ejO        eP          d(z  z   ZSeLT                    edz  edz  feReSfgd)d*+           } e6d,          D ]ZMe7eMdz  z   d-z  d.k     ry ej?        d/ed/z
            ZUg ZVd ZWeWek     rCeVX                    eU ej?        d0d1          z   eWf           eW ej?        d2d3          z  ZWeWek     CeLT                    eVd4d+            ejY        eH                    d%          eJ          ZH eee:z            ZZ eee:z            Z[e#                     eZe[fej!        j"                  Z\ ejD        e\          E                    d5          Z\ ej]        e\          E                    d6          Z\ e* e^de9d7z                      Z_eeZz
  dz  e@z   ZUd8 ed9e8z            z
  Z` eed:z   ed:z   e`z
  e_z  z
            eAz   ZW ejG        d%eZd/z   e[d/z   fd&          Za ejK        ea          Zbebc                    d;d;eZd<z   e[d<z   gd=d>?           ea(                     ej)        d;                    ZaeHY                    eaeUd1z
  eWd1z
  f           eHI                    e\                    d%          eUeWf           eHZde7e0v r% ejG        d%eefd@          Ze ejY        edee          Zde7dA e0D             v r% ejG        d%eefdB          Zf ejY        edef          Zde7e2v r e+ed                    d           ej?        d.d                                        d%          Zd ejg        ed          Zh e6d*          D ]lZi ej?        d edz
            Zj ej?        d*d          Zk ej?        dCdD          Zl ejm        ehejejekz   ddddf         eldE          ehejejekz   ddddf<   m ejn        ehd%          Zd ejg        ed          o                    ejp                  Zhej        q                    d dehjr        dd                   o                    ejp                  Zs ejt        ehdddddd,f         esdddddf         z   d dF          ehdddddd,f<    ejn        eho                    eju                  d%          Zd e,eddG          Zd e-ed          Zded                    d          v                    edHe7dIdJz  dKL           ` e
jw        dMdNdO exe          dP exedQz            dRdSdTdUdVdW exe          gde
jy        e
jy        X           dYZz e
jw        dMdNdP exe          dRdZezgde
jy        e
jy        X            e
jw        dMdNdP exe          dPezd[d\ exe          g	de
jy        e
jy        X            e{e            e{e           dS )_    )ImageImageEnhanceImageFilter	ImageDrawNz5/home/ubuntu/.hermes/image_cache/img_184c12b449fc.jpgz</home/ubuntu/lobbytracker/public/media/larreta-impact-framesT)parentsexist_okz?/home/ubuntu/lobbytracker/public/media/larreta-impact-short.mp4z?/home/ubuntu/lobbytracker/public/media/larreta-impact-short.gif)i  i      g@   RGBi        c                     dd| z
  dz  z
  S )N       )xs    (scripts/make_larreta_impact_animation.pyease_out_cubicr       s    a1Q3(l*    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   axisr   )nparray
zeros_likeintrollr   	fromarray)imamtarroutas        r   	rgb_splitr$   "   s    
axx
(2,,C
-

CCAQQQqqqUQQ///C!!!AJQQQqqqUC!!!AJQQQqqqUaRa000C!!!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_scanlinesr9   ,   s    i33GwA1bi## B B	1rxl#1Qq-qAAAA 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_vignetterK   3   s   
(2,,

bj
)
)CHQqS1WEBraC!rB7RUQqSMA%"R%!A#(::;;D71T	4''s33D!!!BQBKKK4!!!D>!KKK?273q--44RX>>GGGr   r;   c                    t          j        |                               t           j                  }|d d d d dfxx         dd|z  z   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   Q?皙?r   gQ?r   g=
ףp=?r<   )r   r   r=   r>   r   r   rC   rD   )r   strengthr!   s      r   	red_graderP   <   s    
(2,,

bj
)
)C!!!AJJJ$h&&JJJ!!!AJJJ$JJJ!!!AJJJ$JJJ?273q--44RX>>???r   )皙?g?g@g
@c                 <    h | ]}t          |t          z            S r   r   FPS.0bs     r   	<setcomp>rX   D   s"    ***qAcE

***r   c                 B    h | ]}t          |t          z            d z   S )r   rS   rU   s     r   rX   rX   D   s&    -J-J-Jqc!C%jjl-J-J-Jr   r   rN   gp=
ף?g)\(?g)\(?
   g{Gz?rQ   )   r   r   )r   r   r'   r(   g?i  )r<   r   r         r*   r         2   i   Z      )r<   #   rd   P   g?rM   g333333?   A   re            )r<   r   r   F   )radiusr+   )r<   r   r   R   c                     h | ]}|d z   S )r   r   )rV   fs     r   rX   rX      s    '''QQqS'''r   )r   r   r   x   i-   r   r<   r\   frame_03dz.png_   )qualityffmpegz-yz
-frameratez-izframe_%03d.pngz-vfzformat=yuv420pz	-movflagsz
+faststartz-crf18)checkstdoutstderrz/tmp/larreta_palette.pngz,fps=12,scale=480:-1:flags=lanczos,palettegenz-filter_complexzRfps=12,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=3)r%   )r;   )|PILr   r   r   r   numpyr   randommathpathlib
subprocessosPathSRCOUT_DIRmkdirMP4GIFrA   r@   rT   DURr   Nseedopenr4   srcbase_card_wr1   r,   base_card_hresize
ResamplingLANCZOS	card_basebg_srcleftuppercropfilterGaussianBlurr   r$   r9   rK   rP   beatsflash_framessetglitch_framesrW   ro   updater0   itseczoommaxabspulseshakerandintdxdycopybgContrastenhance
Brightnessr-   canvaspaster6   r/   r7   ktausinangcosx2y2r2   r   pointsr8   appendr3   cwchcard	Sharpnessminentery_finalshadowsdrounded_rectangleframeredblackr   r!   _rE   hhoffr   r   r=   int16normalshapenoiserC   rD   saverunstrDEVNULLpaletteprintr   r   r   <module>r      s+   ; ; ; ; ; ; ; ; ; ; ; ; 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9glJKK
',U
V
V dT * * *glTUUglTUU!	CCLL Aejooe$$ c+
*SY677JJ[153C3KLL	 
QAcjL2334e6F6N	O	O	=1ZZQsy[344a8%:J:RSSFQ	q1	dE46573	4	4	;	;<TK<TUW<X<X	Y	Y * * *     > > > >H H H@ @ @ @ 	!  **E***-J-JE-J-J-JJ	 & &A	c!C%jjA!A#a!%%%%	q VJ VJA	1Q3A
C%Ca<D  Aq33s1u::d?*++E ) )3s1u::be	QJE		&	&B		&	&B	B	2s		B		r	"	"	*	*4	0	0B	 	 	$	$	,	,T	2	2BUYuqeX..F
LLU ei1y11G	wAU2YY @ @tTXoHDHSUOO 33qS848C==$$qS848C==$$	1QqS	2b'"Q????U1XX 9 9acER<!fnR"%%AFAA##qB!7!77;<<<^V^Bs+++ A## FF6aF888"U"6>>&#9#97CCF	[		B	[		BRGU%5%=>>D < &&..t44D!<!$''//55DN33q#d(++,,E	
2	BACC1IIoGAFa"fw&%//0025A UYv2be}i88F			B"R2be,RlKKK]]3;3B7788F
6AbD2;///
LLf%%!u---ELei1|44%%eS11'','''''	&1Q%55%%eU33 	M	%--..q0D0DEEMMfUUbhuooq 	H 	HAv~a"%%B.&.2*>*>rNFNSVWYDZDZ 'Br"uHQQQqqqL(93Q G G GC2b5111V,, "(5//
 
 
*
*CIQ39RaR=1188BBE"'#aaa"1"f+aaa$h7C@@C!!!BQBKEOCJJrx00&99EM%$$ELE	MM%g(<(<(<(<(<<bIIII 
T,ss3xxSS9I1I-J-J	
;|F4C 
j(1CE E E E
 	# 
d33s88E2`ahiqu  I  Q  Zd  Zl  m  m  m  m 
d33s88D9J  L`  ad  ad  eh  ai  ai  j  rv  I  Q  Zd  Zl  m  m  m  m c


 c




r   