
    &h                     6   S r SSKrSSKrSSKr\R
                  R                  \R
                  R                  \5      5      S   r	\R
                  R                  \	S5      r SSKrSSKrS rS r\S:X  a  \" 5         \" 5         gg! \ a    \" S5         N,f = f)a  pygame.examples.blit_blends

Blending colors in different ways with different blend modes.

It also shows some tricks with the surfarray.
Including how to do additive blending.


Keyboard Controls
-----------------

* R, G, B - add a bit of Red, Green, or Blue.
* A - Add blend mode
* S - Subtractive blend mode
* M - Multiply blend mode
* = key BLEND_MAX blend mode.
* - key BLEND_MIN blend mode.
* 1, 2, 3, 4 - use different images.

    Ndataz$no surfarray for you!  install numpyc            
         [         R                  " 5         [         R                  R                  5         [         R                  R                  S5      n [         R                  " U R                  5       5      nUR                  S5        [         R                  " U R                  5       5      nUR                  S5        UnUR                  S5        0 nX$[         R                  '   [         R                  R                  [        R                  R                  [         S5      5      U[         R"                  '   [         R                  R                  [        R                  R                  [         S5      5      U[         R$                  '   [         R                  R                  [        R                  R                  [         S5      5      U[         R&                  '   UR)                  5       nUR+                  5       n0 n[         R,                  U[         R.                  '   [         R0                  U[         R2                  '   [         R4                  U[         R6                  '   [         R8                  U[         R:                  '   [         R<                  U[         R>                  '   0 nSU[         R.                  '   S	U[         R2                  '   S
U[         R6                  '   SU[         R:                  '   SU[         R>                  '   U RA                  US5        [         R                  RC                  5         [         RD                  RG                  5       n	[I        SURK                  S5      /-  5        Sn
U
(       Ga  U	RM                  S5        [         RN                  RQ                  5        GHS  nURR                  [         RT                  :X  a  Sn
URR                  [         RV                  :X  a
  [Y        5         URR                  [         RV                  :X  a"  URZ                  [         R\                  :X  a  Sn
M  URR                  [         RV                  :X  a>  URZ                  UR_                  5       ;   a   XKRZ                     nUR+                  5       nM  URR                  [         RV                  :X  a  URZ                  UR_                  5       ;   a|  [D        RD                  " 5       nURA                  USS X{RZ                     5        [D        RD                  " 5       n[I        SURK                  S5      /-  5        [I        SX-
   S35        GM  URR                  [         RV                  :X  a  URZ                  [         R`                  4;   a  UR_                  5        Hm  n[D        RD                  " 5       n[c        S5       H  nURA                  USS X~   5        M     [D        RD                  " 5       nX   n[I        SU SX-
   S35        Mo     GMa  URR                  [         RV                  :X  a  URZ                  [         Rd                  4;   an  [D        RD                  " 5       nURA                  US5        [D        RD                  " 5       n[I        SURK                  S5      /-  5        [I        SX-
   S35        GM  URR                  [         RV                  :X  a  URZ                  [         Rf                  :X  a  [D        RD                  " 5       n[h        Rj                  Rm                  U5      n[h        Rj                  Rm                  U5      nUU-  nAA[D        RD                  " 5       n[I        SURK                  S5      /-  5        [I        SX-
   S35        GM  URR                  [         RV                  :X  Ga6  URZ                  [         Rn                  4;   Ga  [D        RD                  " 5       n[h        Rj                  Rq                  U5      n[h        Rj                  Rq                  U5      nURs                  [t        Rv                  5      nURs                  [t        Rv                  5      nUU-  n[t        Rx                  " US5      n[h        Rj                  R{                  UU5        AA[D        RD                  " 5       n[I        SURK                  S5      /-  5        [I        SX-
   S35        GM>  URR                  [         RV                  :X  a  URZ                  [         R|                  [         R~                  [         R                  4;   a  0 nSU[         R|                  '   SU[         R~                  '   SU[         R                  '   [h        Rj                  Rm                  U5      nUUURZ                     -  nA[I        SURK                  S5      /-  5        GM'  URR                  [         RV                  :X  a?  URZ                  [         R                  :X  a!  [I        SURK                  S5      /-  5        GM  URR                  [         RV                  :X  d  GM  URZ                  [         R                  :X  d  GM  [D        RD                  " 5       nUR                  S5        URA                  US5        UR                  S5        [D        RD                  " 5       n[I        SURK                  S5      /-  5        [I        SX-
   S35        GMV     U RA                  US5        [         R                  RC                  5         U
(       a  GM  [         R                  " 5         g )N)i  i  )d   r   r   )r   2   r      z	chimp.pngz
alien3.gifz
liquid.bmp	BLEND_ADD	BLEND_SUB
BLEND_MULT	BLEND_MAX	BLEND_MIN)r   r   zone pixel is:%s:T<   Fztime to do::i,  ztime to do :z: is :   i         )Cpginitmixerquitdisplayset_modeSurfaceget_sizefill	set_alphaK_1imageloadospathjoindata_dirK_2K_3K_4convertconvert_alphar   K_ar	   K_sr
   K_mr   K_EQUALSr   K_MINUSblitfliptimeClockprintget_attickeventgettypeQUITKEYDOWNusagekeyK_ESCAPEkeysK_trangeK_oK_SPACEpygame	surfarraypixels2dK_zpixels3dastypenumpyuint16minimum
blit_arrayK_rK_gK_bK_pK_f)screenim1im2im3imagesimg_to_blitiaablitsblitsnclockgoingr4   t1t2bkeyxonedoingim1pim2pim1p16im2p16colmaps                         S/var/www/auris/envauris/lib/python3.13/site-packages/pygame/examples/blit_blends.pymainrf   $   s\   GGIHHMMOZZ  ,F
**V__&
'CHH[
**V__&
'CHHZ CMM#F266NXX]]277<<+#FGF266NXX]]277<<,#GHF266NXX]]277<<,#GHF266N++-K

#
#
%CELLE"&&MLLE"&&MMME"&&ME"++E"**F F266N F266N!F266N%F2;;$F2::
KKVJJOOGGMMOE	


6 23
34E


2XX\\^EzzRWW$zzRZZ'zzRZZ'EII,Drzz)eii6;;=.H$YY/!//1rzz)eii5::<.GYY[fdE))4DEYY[(CJJv,>+??@BG9A./rzz)eiiBFF8.C!JJLDB"3ZfdEKH ( B  &|HL
&	CD ) rzz)eiiBFF8.CYY[f%YY[(CJJv,>+??@BG9A./rzz)eii2::.E
 YY[''005''005YY[(CJJv,>+??@BG9A./rzz)eiiBFF8.CYY[''005''005U\\2U\\2& vs3  ++C8YY[(CJJv,>+??@BG9A./rzz)eiiBFFBFFBFF;S.S!(rvv!(rvv!(rvv''005uyy))(CJJv,>+??@rzz)eii266.A(CJJv,>+??@rzz)eii266.A YY[c"f%c"YY[(CJJv,>+??@BG9A./E $H 	C 


Q %T GGI    c                  F    [        S5        [        S5        [        S5        g )Nz'press keys 1-5 to change image to blit.z&A - ADD, S- SUB, M- MULT, - MIN, + MAXz(T - timing test for special blend modes.)r1    rg   re   r9   r9      s    	
34	
23	
45rg   __main__)__doc__r   rA   r   r/   r    splitabspath__file__main_dirr!   r"   pygame.surfarrayrG   ImportErrorr1   rf   r9   __name__ri   rg   re   <module>rs      s   ( 
  77==23A677<<&)2
Vr6 z	GF G  2	
012s   #B BB