fan.py
Created by
schraf
Created on
July 11, 2022
3.9 KB
from kandinsky import fill_rect
from time import sleep
def draw_image ( rle , x0 , y0 , w , pal , zoomx = 1 , zoomy = 1 , itransp =- 1 ):
i , x = 0 , 0
x0 , y0 = int ( x0 ), int ( y0 )
nvals = len ( pal )
nbits = 0
nvals -= 1
while ( nvals ):
nvals >>= 1
nbits += 1
maskval = ( 1 << nbits ) - 1
maskcnt = ( 0xFF >> nbits >> 1 ) << nbits
while i < len ( rle ):
v = rle [ i ]
mv = v & maskval
c = ( v & maskcnt ) >> nbits
if ( v & 0b10000000 or nbits == 8 ):
i += 1
c |= rle [ i ] << ( 7 - nbits + ( nbits == 8 ))
c = c + 1
while c :
cw = min ( c , w - x )
if mv != itransp :
fill_rect ( x0 + x * zoomx , y0 , cw * zoomx , zoomy , pal [ mv ])
c -= cw
x = ( x + cw ) % w
y0 += x == 0 and zoomy
i += 1
palette = (
" #000000 " , " #a0d8b0 " , " #c0e4c8 " , " #f8fcf8 " , " #f0e8d8 " , " #d0dcc8 " , " #e0ecd8 " , " #709080 " ,
)
image0 = (
b " \xd3\3\4 # \4\23\4\xe3\1\4 s \4\xbb\1\x04 3 \5\3\t\5\t\2\33\4\x9b\1\4 C \31\6 ) \6\x9b\1\4 Ci \x8b\1\4 Cq \23\4 c \f C \xf9\0\23\4 S \4 S \4\21\2\t\5\x04 1 \x93\1\31\33 I \4 ) \xfb\0\1\2\31\4\23 A \2\t\2\31\4\23\x04 3 \4\v\21\4\t\4\1\6\v Q \2\1\4\21 [ \5\3 ! \f\21\v\1\2\t\2\1\x04 1 \4\t # \4 # \4\3\2 ! \4 ! \v q[ \4\3 Y \v aC \4 + \t\2\t\x04 1 \3\n\24\31\2\1\3\21\2\t Sa \3\4\v\5\v\4\t\3 A3 \4\v\21\2\21\2 ! \4\6\31\4\3\4 Y+ \4\v\f\2\1\24\1\2\21\4\3 ! \5\1\3\4\31\2 )+ \4\v\31\5\31\4\t\4\31\2\4\21\x04 1 \4\31\v\4\v\5\v Q \4\6\2\5\f\5\4\21\x05 1 \4\31\v\4\23\5\3\31\x02 1 \4\2\24\5\4\21\4\2\t\2\21\4\31\3\f\v\4\v\31\5\31\2\t\4\31\f\21\5\1\5 ! \6\21\4 # \4\23\21\4\1\2 ! \4\3\21\5\4\t\3\4 ! \2\5\2\31 # \4\23 ) \2\31\3\4\3\21\4\1\3\4 aK1 \23\t\f\23\f\3\t\2\31\2 !c \4 #! \24\t\v I \2\1\3\4\33\4 KY \v\t\2\t\4\2 !sq \v Is \1\x04 1 \4 ) \23\t\2 ! \2\3\4 + \4 # \2\4\1\4 a \6\v\1\2\21\2\1 s \4\31\4 a \23\4\2\21\5\v\4 k \31\2\4\1\2\1\x02 1 \4\23\5\xfb\0\4\33\2 ) \4\5\t\2\1\2\4\2\1 # \4\xfb\0\4\23\x81\1\xb3\1\4\23 A \2 ! \xc3\1\4\3\5\3\1\2 Y3 \4\x93\1\5\v ) \5\1\2\x11 3 \4\xa3\1\4\33\2\1\2\6\1\27\xfb\1\4 # ' \33\4\xeb\1\4\v\a\4\27\3\f\x93\2 ' \xab\2 ' \xa3\2\5 ' \xa3\x02 7 \x93\2 G \x83\2 W \xf3\1 ' \25 ' \xe3\1 w \xdb\1 / \4\r / \xd3\1\xff\0\5\xcb\1\x87\1\xcb\1 g \5\17\xe3\1 _ \x9b\2\4\xab\1 "
)
image1 = (
b " \xf8\b\21\2\0 ; \xd8\1 9 \v\x04 3 \xb8\1 QC \xa0\1\3 YC \x98\1\3 a \6 # \2\1\6\3\x90\1\31\2\21 ( \3\4\v\1 \6\x80\x01 1 \x05 1 \23\1 ( \t h \v \4 A \v\1 8 \2\5 X \v\1 (A \4\3 @ \21 P \v\x01 01 \3\4 @!@ \23\x01 0 \t\2\t\2\1\v 8) \x03 0#8) \3 A \5 ) \3 (# \x01 0 \21\30 9 \21\3 (+A0 \31 8 \21 (# \4\3\2 !H \1 P \t ( \3\f\23\f\3\2 ` \4 P \1\6 ( \23\21\2\23\4\3\1\xa8\1\1\3 ( \v 8 \2\3\4\xb0\1\3 ( \3\1\xa8\1\2\1 @ \3\x80\2\1\3\1 \1\4\3 ( \3\1\xa0\1\4 \24\2\1\23 ( \t H \t\xf8\0\1 +( \21 (!8 \1 8 \1 #() \5 !8 \31 8#( \3\xf9\0\x03 10 \1\x1b 0) \4 9 \v 18 \23 @!@ \v 90 \v H \3\31 8 \2\v\t\2 ) \1\3 X \3\1\4\1 8 \v I \4\20\1 p \3\t 0 \23\1 ( \4\21\4\t\2\x80\x01 1 \3\f\x03 0! \5\1\x90\1\3\31 #a \x98\1\5 CY \xa8\1 K! \2\31\xb8\1 K \6 ) \6\xd0\1 # \4\27\b\23\xf0 + "
)
image2 = (
b " \xf8\b\33\0\v\2\1\2\v\xe0\1 #! \4 ) \xc0\1 #i \xa8\1 + \xf9\0\x98\x01 3 \xf9\0\3\x90\x01 30 \1\4\x02 1 \3\x80\1\3\21\23\4 Q( \v h \3\1 \4\v I0 \v\4 X \2\t ( \v 1 \5\1 8 \33 P \21 ( \1\v ) \4 @#@ \x19 0 \v\21\2 Q30 \3\x19 0 \1\3 ! \x02 1 \v\x04 3( \3 !0 \v\1\30 ![( \2 a \x03 0 \t # \1\4\1 #(! \x04 1H \v\1 8 \23 ( \1\f\22\f\t ` \4 P \v (I \4\t\xa8\1\2\3 ( \2\1 8 \t\5\xb0\1\3 ( \3\1\xa8\1\t @ \1\x80\2\21 \1\4\3 ( \3\xa8\1\4 \24\2\21\3 ( \v H \6\3\xf8\0 ) \3 ( \x13 0 \33\x80\1 ! \3 (# \2\5 # \2\20\5\b\4\t\3 @ \31\3 (Sa8 \31\x03 0+ \4\x03 1 \2 ) \3 @ \t\3 @+8 \5 98 \t H#8A \x03 0 \21 P \v\4\3 8 \31\2\31\3\1 ( \t ` \x13 0 \21\2 ( \4\3 \1\x80\1\x03 1 \4\5\x01 0 \1\33\4\3\x90\1\3\xf9\0 + \xa0\1\xf9\0 # \xb0\1 i# \xc0\1\1\2 I# \xd8\1\3\21\4\2\1\a\b\23\xf0 + "
)
image3 = (
b " \xf8\b\21\2\b\v\4\23\xe0\1 9C \xb8\1\3 QC \xa0\1\3 YC \x98\1\3\31\2 9# \31\3\x90\x01 10 \3\4\v 1 \x80\x01 1 \x05 1 \x13 0 \t\3 ` \v \4 A \v 8 \t\4\3 P \v 09 \2\3 @ \4\21\3 @ \x13 09 \v @!8 \33 8 \t\2\t\2\1\3 @1 \3 ( \33\x01 01 \3\xf9\0\3 (#8 \21\5\f\0\6 A \4 )(+A0q(# \4\v p \21 8 \21 ( \3\f\23\f\3\2 ` \4 P \1\3 (K \4\v P \1 P \3 ( \v\2 ( \1\v\4 P \1 P \3 ( \v\xa8\1\v\2 8 \v ( \3\1\xa8\1\3\4\33\1\20\3\4\3 ( \3\1\xa0\1\4\21\33\4 #( \3\1 H \t @);( \3\t ()( \4 93( \3 ! \2 A \0\5\4\2\21 8+( \3 I( \3 )8#( \3 ) \4\1 8 \2 )8#8 \21\2\t @90 \6\v P \31 @ \3\2\t\2\x19 0 \23 X \5\2\1 @I( \3\5 h \t 8 \3 @ \t\30\6\x80\1 9 \3\4 8! \2\1\x98\1 ! \23 8) \xa0\1 ;8! \xb0\x01 3 \6 Q \xc0\1 ;9 \3\xe8\1\v\0\37\21\3\xf0 + "
)
fill_rect ( 0 , 0 , 320 , 222 ,( 255 , 255 , 255 ))
while True :
for i in range ( 4 ):
draw_image ( eval ( ' image ' + str ( i )), 70 , 0 , 43 , palette , zoomx = 4 , zoomy = 4 , itransp = 0 )
sleep (. 05 )