For default make configuration, 574 bytes saved with primitive compression algorithm.
79 lines
2.1 KiB
Python
79 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
from PyQt4 import Qt, QtGui
|
|
|
|
image = QtGui.QImage(sys.argv[1])
|
|
width, height = image.size().width(), image.size().height()
|
|
|
|
f = file(sys.argv[2], "w")
|
|
|
|
if sys.argv[3] == "img":
|
|
rows = 1
|
|
if len(sys.argv) > 4:
|
|
rows = int(sys.argv[4])
|
|
f.write("%d,%d,0,\n" % (width, height/rows))
|
|
for y in range(0, height, 8):
|
|
for x in range(width):
|
|
value = 0
|
|
for z in range(8):
|
|
if image.pixel(x, y+z) == Qt.qRgb(0, 0, 0):
|
|
value += 1 << z
|
|
f.write("0x%02x," % value)
|
|
f.write("\n")
|
|
|
|
elif sys.argv[3] == "imgc":
|
|
rows = 1
|
|
if len(sys.argv) > 4:
|
|
rows = int(sys.argv[4])
|
|
f.write("%d,%d,1,\n" % (width, height/rows))
|
|
val=0
|
|
ocur=0
|
|
for y in range(0, height, 8):
|
|
for x in range(width):
|
|
value = 0
|
|
for z in range(8):
|
|
if image.pixel(x, y+z) == Qt.qRgb(0, 0, 0):
|
|
value += 1 << z
|
|
if (val==value) & (ocur<255):
|
|
ocur+=1
|
|
else:
|
|
if ocur>1:
|
|
if ocur>2:
|
|
f.write("0xf0,0x%02x,0x%02x," % (val,ocur))
|
|
else:
|
|
f.write("0x%02x,0x%02x," % (val,val))
|
|
else:
|
|
if val!=0xf0:
|
|
f.write("0x%02x," % val)
|
|
else:
|
|
f.write("0xf0,0xf0,0x01,")
|
|
val=value
|
|
ocur=1
|
|
f.write("\n")
|
|
if ocur>0:
|
|
if ocur>1: f.write("0xf0,0x%02x,0x%02x," % (val,ocur))
|
|
else:
|
|
if val!=0xf0: f.write("0x%02x," % val)
|
|
else: f.write("0xf0,0xf0,0x01,")
|
|
|
|
elif sys.argv[3] == "char":
|
|
for y in range(0, height, 8):
|
|
for x in range(width):
|
|
value = 0
|
|
for z in range(8):
|
|
if image.pixel(x, y+z) == Qt.qRgb(0, 0, 0):
|
|
value += 1 << z
|
|
f.write("0x%02x," % value)
|
|
f.write("\n")
|
|
elif sys.argv[3] == "dblsize":
|
|
for y in range(0, height, 16):
|
|
for x in range(width):
|
|
for l in range(0, 16, 8):
|
|
value = 0
|
|
for z in range(8):
|
|
if image.pixel(x, y+l+z) == Qt.qRgb(0, 0, 0):
|
|
value += 1 << z
|
|
f.write("0x%02x," % value)
|
|
f.write("\n")
|