annotate Scan/STLcd/bitmap2Struct.py @ 399:3437e2246259

Merge pull request #73 from joshuaflanagan/example_script_variables Stop requiring editing of example scripts
author Jacob Alexander <haata@kiibohd.com>
date Tue, 10 Nov 2015 11:24:03 -0800
parents cba3cefc6e56 63b1d003fd50
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 #!/usr/bin/env python3
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 # Copyright (C) 2015 by Jacob Alexander
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 #
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 # This file is free software: you can redistribute it and/or modify
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 # (at your option) any later version.
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 #
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 # This file is distributed in the hope that it will be useful,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 # GNU General Public License for more details.
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 #
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 # along with this file. If not, see <http://www.gnu.org/licenses/>.
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18 # Imports
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19 import sys
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 from array import *
397
cba3cefc6e56 Adding comment about using Pillow instead of PIL
Jacob Alexander <haata@kiibohd.com>
parents: 332
diff changeset
22 from PIL import Image # Use pillow instead of PIL, it works with Python 3
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 # Convenience class to deal with converting images to a C array
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 class STLcdGraphic:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 # Some constants for the LCD Driver
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 page_width = 8
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 page_max_length = 132
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31 array('B')
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33 def __init__( self, height, width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34 self.height = height
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35 self.width = width
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37 # Calculate number of pages
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38 self.page_count = int( self.height / self.page_width )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
39 self.page_length = self.width
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
40
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
41 # Initialize pages to 0's
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
42 self.page_data = []
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
43 for page in range( 0, self.page_count ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
44 self.page_data.append( array( 'B', [0] * self.page_length ) )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
45
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
46 def setpixel( self, x, y ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
47 # Calculate which page
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
48 page = int( ( self.height - y ) / self.page_width )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
49
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
50 if page == 4:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
51 print("YAR", (x,y))
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
52
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
53 # Calculate which byte
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
54 byte = x
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
55
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
56 # Calculate which bit
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
57 bit = int( ( self.height - y ) % self.page_width )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
58
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
59 # Set pixel bit
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
60 self.page_data[ page ][ byte ] |= (1 << bit)
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
61
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
62 def getpage( self, page ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
63 return self.page_data[ page ]
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
64
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65 def getarray( self ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
66 struct = "{\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
67
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
68 for page in range( 0, self.page_count ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
69 for elem in self.page_data[ page ]:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
70 struct += "0x{0:02x}, ".format( elem )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
71
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
72 if page != self.page_count - 1:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
73 struct += "\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
74
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
75 struct += "\n}"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
76
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
77 return struct
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 # Prints out what the image will look like on the display
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
80 def preview( self ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
81 # Top border first
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
82 display = "+"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
83 for pixel in range( 0, self.width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
84 display += "-"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
85 display += "+\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
86
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
87 # Each Page
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88 for page in range( self.page_count - 1, -1, -1 ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89 # Each Bit (Line)
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 for line in range( 7, -1, -1 ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
91 # Border
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 display += "|"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
94 # Each Byte (Column/Pixel)
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 for byte in range( 0, self.width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96 if self.page_data[ page ][ byte ] & (1 << line):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97 display += "*"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98 else:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
99 display += " "
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
100
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
101 # Border
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 display += "|\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104 # Bottom border
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 display += "+"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 for pixel in range( 0, self.width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107 display += "-"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
108 display += "+\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
109
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
110 return display
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
111
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
112
398
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 332
diff changeset
113 filename = sys.argv[1]
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 332
diff changeset
114 if filename is None:
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 332
diff changeset
115 print( "You must specify a bitmap filename. Try './bitmap2Struct.py ic_logo_lcd.bmp'" )
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 332
diff changeset
116 sys.exit( 1 )
332
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
117 max_height = 32
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
118 max_width = 128
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
119 x_offset = 0
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
120 y_offset = 0
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
121 output_image = STLcdGraphic( max_height, max_width )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
122
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
123
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
124
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
125 # Load the input filename and convert to black & white
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
126 try:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
127 input_image = Image.open( filename ).convert('1')
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
128 except:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
129 print( "Unable to load image '{0}'".format( filename ) )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
130
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 # Check the image size to see if within the bounds of the display
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 if input_image.size[0] > max_width or input_image.size[1] > max_height:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
133 print( "ERROR: '{0}:{1}' is too large, must be no larger than {2}x{3}".format(
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
134 filename,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
135 ( input_image.format, input_image.size, input_image.mode ),
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
136 max_width,
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
137 max_height )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
138 )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139 sys.exit( 1 )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
140
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141 # Center the image
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142 height_start = int( ( max_height - input_image.size[1] ) / 2 )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
143 height_end = int( height_start + input_image.size[1] )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
144 width_start = int( ( max_width - input_image.size[0] ) / 2 )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
145 width_end = int( width_start + input_image.size[0] )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
146
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
147 #print( height_start )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
148 #print( height_end )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
149 #print( width_start )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
150 #print( width_end )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
151
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
152 # Iterate over all of the pixels
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
153 # Also prepare the debug view of the image (disp_test)
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
154 disp_test = "+"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
155 for pixel in range( 0, max_width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
156 disp_test += "-"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157 disp_test += "+\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
158
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
159 for y in range( 0, max_height ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
160 disp_test += "|"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
162 # Check if within height range
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
163 if not ( y >= height_start and y < height_end ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
164 disp_test += " " * max_width + "|\n|"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
165 continue
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
166
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
167 for x in range( 0, max_width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
168 # Check if within width range
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
169 if not ( x >= width_start and x < width_end ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
170 disp_test += " "
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
171 continue
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173 # Use image value to determine pixel
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
174 try:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
175 if input_image.getpixel( (x - width_start, y - height_start) ) == 0:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
176 disp_test += "*"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
177 output_image.setpixel( x, y + 1 ) # +1 is due to page boundary
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
178 else:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
179 disp_test += " "
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
180 except IndexError:
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181 print( (x - width_start,y - height_start) )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
182 pass
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
183
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
184 disp_test += "|\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
185
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
186 disp_test += "+"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
187 for pixel in range( 0, max_width ):
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
188 disp_test += "-"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
189 disp_test += "+\n"
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
190
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
191 # BMP Conversion preview
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
192 print( disp_test )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
193
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
194
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
195 print ( output_image.preview() )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
196 #print ()
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
197 print( "uint8_t array[] = {0};".format( output_image.getarray() ) )
2e0074f75855 Adding example logo to the lcdtest and bmp conversion script.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
198