forked from chezsick/MyGist
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ff2less.py
executable file
·49 lines (48 loc) · 985 Bytes
/
ff2less.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import sys
less=int(sys.argv[1])
if not "farbfeld" == sys.stdin.read(8):
exit(1)
size = sys.stdin.read(8)
x = (pow(256,3)*ord(size[0]))+(pow(256,2)*ord(size[1]))+(pow(256,1)*ord(size[2]))+(pow(256,0)*ord(size[3]))
y = (pow(256,3)*ord(size[4]))+(pow(256,2)*ord(size[5]))+(pow(256,1)*ord(size[6]))+(pow(256,0)*ord(size[7]))
n = x*y
sys.stdout.write("farbfeld")
sys.stdout.write(size)
rr=0
gg=0
bb=0
rm=0
gm=0
bm=0
while bool(n):
o = sys.stdin.read(8)
r = (ord(o[0])*256)+ord(o[1])
g = (ord(o[2])*256)+ord(o[3])
b = (ord(o[4])*256)+ord(o[5])
if not bool(n%x):
rr=r
gg=g
bb=b
dr=abs(r-rr)
dg=abs(g-gg)
db=abs(b-bb)
rv=r
gv=g
bv=b
d=max(dr,dg,db)
if d < less or d > (65535-less):
rv = r
gv = g
bv = b
rm = rv
gm = gv
bm = bv
else:
rv = rm
gv = gm
bv = bm
sys.stdout.write("%s%s%s%s%s%s%s%s" %(chr(rv/256),chr(rv%256),chr(gv/256),chr(gv%256),chr(bv/256),chr(bv%256),o[6],o[7]))
rr=r
gg=g
bb=b
n=n-1