diff img2dcolor.py @ 11:19226d79f839

Add direct color DMA demo and converter
author Mike Pavone <pavone@retrodev.com>
date Fri, 06 Sep 2013 19:09:19 -0700
parents
children 580b64af2241
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/img2dcolor.py	Fri Sep 06 19:09:19 2013 -0700
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+from PIL import Image
+
+def gchannel(Val):
+	return (Val >> 4) & 0xE
+
+def gcolor(color):
+	if len(color) == 4:
+		(R, G, B, A) = color
+	else:
+		(R, G, B) = color
+	return (gchannel(R), gchannel(G), gchannel(B))
+
+def trans_image(im):
+	pixels = im.getdata()
+	(width, height) = im.size
+	gpixels = bytearray()
+	A = 255
+	x = 0
+	y = 0
+	for pixel in pixels:
+		if x == width:
+			x = 0
+			y += 1
+		if x == 0:
+			pad = 198-width/2
+			print 'pad', pad
+			for i in xrange(0, pad*2):
+				gpixels.append(0)
+		if not (x & 1):
+			(R,G,B) = gcolor(pixel)
+			gpixels.append(B)
+			gpixels.append(G << 4 | R)
+		x += 1
+	return gpixels
+
+def appendword(b, word):
+	b.append(word >> 8)
+	b.append(word & 0xff)
+
+
+
+def main(argv):
+	if len(argv) < 3:
+		print "Not enough arguments"
+		return
+	fname = argv[1]
+	im = Image.open(fname)
+	pix = trans_image(im)
+	out = open(argv[2], 'wb')
+	out.write(pix)
+
+if __name__ == '__main__':
+	import sys
+	main(sys.argv)