board_hd44780: New sample code
[simavr] / examples / board_hd77480 / data / processblu.py
diff --git a/examples/board_hd77480/data/processblu.py b/examples/board_hd77480/data/processblu.py
new file mode 100644 (file)
index 0000000..17f89f6
--- /dev/null
@@ -0,0 +1,75 @@
+import Image,struct
+img = Image.open('blu.tiff')
+
+class CharData(object):
+    def __init__(self, data):
+        if data is None:
+            self.data = [ [] for y in range(7) ]
+        else:
+            self.data = data
+
+    def concat( self, other ):
+        for y in range(7):
+            self.data[y] += other.data[y]
+
+    def get_bindata(self):
+        ll = len(self.data[0])
+        ret=''
+        for y in reversed(range(7)):
+            for x in self.data[y]:
+                ret += struct.pack('BBBB',*x)
+        return ret
+            
+
+    def save_as(self, name):
+        height = 7
+        width = len(self.data[0])
+        outimg = Image.frombuffer( "RGBA", (width, height),
+            self.get_bindata())
+        outimg.save(name)
+            
+
+def char_at(char_x,char_y):
+    """
+    char_x specifies, zero based, the x position of the character
+    """
+    start_x = 1+char_x+ 14*char_x+2
+    start_y = 1+char_y*22+1
+    print "Starting at %i,%i" %( start_x,start_y)
+    return CharData([[ img.getpixel( (start_x+2*x,start_y+2*y) ) for x in range(5)] for y in range(7)])
+
+
+chardata = CharData(None)
+for x in range(16): #0x00 - 0x0F
+    chardata.concat( char_at(0,x) )
+for x in range(16): #0x10 - 0x1F
+    chardata.concat( char_at(0,x) )
+for x in range(16): #0x20 - 0x2F
+    chardata.concat( char_at(1,x) )
+for x in range(16): #0x30 - 0x3F
+    chardata.concat( char_at(2,x) )
+for x in range(16): #0x40 - 0x4F
+    chardata.concat( char_at(3,x) )
+for x in range(16): #0x50 - 0x5F
+    chardata.concat( char_at(4,x) )
+for x in range(16): #0x60 - 0x6F
+    chardata.concat( char_at(5,x) )
+for x in range(16): #0x70 - 0x7F
+    chardata.concat( char_at(6,x) )
+for x in range(16): #0x80 - 0x8F
+    chardata.concat( char_at(0,x) )
+for x in range(16): #0x90 - 0x9F
+    chardata.concat( char_at(0,x) )
+for x in range(16): #0xA0 - 0xAF
+    chardata.concat( char_at(7,x) )
+for x in range(16): #0xB0 - 0xBF
+    chardata.concat( char_at(8,x) )
+for x in range(16): #0xC0 - 0xCF
+    chardata.concat( char_at(9,x) )
+for x in range(16): #0xD0 - 0xDF
+    chardata.concat( char_at(10,x) )
+for x in range(16): #0xE0 - 0xEF
+    chardata.concat( char_at(11,x) )
+for x in range(16): #0xF0 - 0xFF
+    chardata.concat( char_at(12,x) )
+print chardata.save_as('7x5font.tiff')