1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Converts 32x32 XPM images written be the gimp to GL stipples
4 # takes XPM files as arguments, prints out C style definitions.
11 xpm_ls
= [f
for f
in sys
.argv
[1:] if f
.lower().endswith(".xpm")]
13 print("Converting: " + " ".join(xpm_ls
))
21 data
= data
.split("{", 1)[1]
24 data
= data
.rsplit("}", 1)[0]
26 data
= data
.replace("\n", "")
28 data
= data
.split(",")
30 w
, h
, c
, dummy
= map(int, data
[0].strip("\"").split())
32 if w
!= 32 or h
!= 32 or c
!= 2:
33 print("Skipping %r, expected 32x32, monochrome, got %s" %
40 data
= [d
[1:-1] for d
in data
[3:]]
45 for i
, c
in enumerate(d
):
46 bits
.append('01'[(c
== col_2
)])
49 print("Skipping %r, expected 1024 bits, got %d" %
57 for i
in range(0, len(bits
), 8):
58 chars
.append("0x%.2x" % int(bits
[i
:i
+ 8], 2))
62 var
= os
.path
.basename(xpm
)
63 var
= os
.path
.splitext(var
)[0]
65 fout
.write("GLubyte stipple_%s[128] {\n\t" % var
)
66 for i
, c
in enumerate(chars
):
68 fout
.write("%s, " % c
)
77 if __name__
== "__main__":