Mercurial > repos > ghero
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)