kff2 22 Posted April 24, 2012 Share Posted April 24, 2012 In oPossum's Time and Temperature project, there is an embedded TI logo that rolls across the screen when the program starts. Here is how you can generate bitmaps from your own images. You will need ImageMagick and python. 1) Resize your image to fit on the LCD. The maximum height is 96 pixels. The height should be a multiple of 8. Also, you will want to stretch your image horizontally a little bit, as pixels on 7110 aren't square. I did something along the lines of convert -resize 43x48! logo.jpg logo2.png The exclamation point here tells ImageMagick to go ahead and change the aspect ratio of the image; otherwise it will set width (or height) automatically to maintain the original aspect ratio. 2) Convert the image to 1-bit black and white and save it in RGB format convert -monochrome -depth 1 -type Bilevel +dither logo2.png logo3.rgb The resulting file contains 3 bits for each pixel (red, green, and blue channels). The 3 bits are the same. 0 corresponds to black and 1 to white. I wrote a short python script to convert RGB files to the format expected by nokia7110tl.h's bitmap() function: import sys import string x = int(sys.argv[2]) y = int(sys.argv[3]) img = open(sys.argv[1]).read() b = string.join([str(int(ord(img[i*3/8]) & (1<<(7-(i*3%8))) == 0)) for i in xrange(x*y)], '') # b is a string that contains a 0 or 1 for each pixel of the image. If you now set # the screen size to 'width' and print b, you should see your image in ascii. # The next step is to rearrange the bits in b to match the # addressing expected by 7110's controller. b2 = '' for i in reversed(xrange(y/8)): for j in xrange(x): b2 += string.join([b[(y-1-i*8-k)*x+j] for k in xrange(8)], '') print string.join(['0x%02x' % eval('0b'+b2[i*8:i*8+8]) for i in xrange(x*y/8)], ',') You run it like this: python convert_7110.py logo3.rgb 43 48 where 43 is the width and 48 is the height of the image. The script spits out an array of ascii bytes that you can copy and paste directly into your C program and pass to the bitmap() function. bluehash, turd and GeekDoc 3 Quote Link to post Share on other sites
bluehash 1,581 Posted April 24, 2012 Share Posted April 24, 2012 Thanks kff2. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.