Fix optimization colors handling
This commit is contained in:
parent
c0eee33bec
commit
a5cc0634f6
23
test.py
23
test.py
@ -8,11 +8,11 @@ epd_resolution = [600, 448]
|
|||||||
epd_colormap = [
|
epd_colormap = [
|
||||||
[0x00, 0x00, 0x00], # black
|
[0x00, 0x00, 0x00], # black
|
||||||
[0xff, 0xff, 0xff], # white
|
[0xff, 0xff, 0xff], # white
|
||||||
[0x00, 0xdd, 0x00], # green
|
[0x00, 0x90, 0x10], # green
|
||||||
[0x00, 0x00, 0xee], # blue
|
[0x00, 0x00, 0xee], # blue
|
||||||
[0x00, 0xdd, 0x00], # red
|
[0xff, 0x00, 0x00], # red
|
||||||
[0xff, 0xdd, 0x00], # yellow
|
[0xff, 0xdd, 0x00], # yellow
|
||||||
[0xff, 0x88, 0x00], # orange
|
[0xff, 0x77, 0x00], # orange
|
||||||
]
|
]
|
||||||
|
|
||||||
images = ["lambo.bmp", "fallout.bmp", "nasa.bmp"]
|
images = ["lambo.bmp", "fallout.bmp", "nasa.bmp"]
|
||||||
@ -32,17 +32,17 @@ def draw_image(filename):
|
|||||||
offset_y = 0
|
offset_y = 0
|
||||||
color_map = {}
|
color_map = {}
|
||||||
def header_callback(header):
|
def header_callback(header):
|
||||||
print("header callback: ", str(header))
|
#print("header callback: ", str(header))
|
||||||
global epd_resolution
|
global epd_resolution
|
||||||
|
global offset_x, offset_y
|
||||||
w = header[0]
|
w = header[0]
|
||||||
h = header[1]
|
h = header[1]
|
||||||
offset_x = (epd_resolution[0] - w)//2
|
offset_x = (epd_resolution[0] - w)//2
|
||||||
offset_y = (epd_resolution[1] - h)//2
|
offset_y = (epd_resolution[1] - h)//2
|
||||||
print("offset: ", offset_x, offset_y)
|
|
||||||
def pixel_callback(x, y, color):
|
def pixel_callback(x, y, color):
|
||||||
global epd
|
global epd
|
||||||
global epd_colormap
|
global epd_colormap
|
||||||
|
global offset_x, offset_y
|
||||||
# translate color to color index
|
# translate color to color index
|
||||||
color_index = 0
|
color_index = 0
|
||||||
color_key = color[0] + color[1] << 8 + color[2] << 16
|
color_key = color[0] + color[1] << 8 + color[2] << 16
|
||||||
@ -59,18 +59,11 @@ def draw_image(filename):
|
|||||||
if score < best_score:
|
if score < best_score:
|
||||||
best_score = score
|
best_score = score
|
||||||
best_index = index
|
best_index = index
|
||||||
if score < 20:
|
if score < 10:
|
||||||
break
|
break
|
||||||
color_index = best_index
|
color_index = best_index
|
||||||
color_map[color_key] = color_index
|
color_map[color_key] = color_index
|
||||||
|
epd.pixel(offset_x + x, offset_y + y, color_index)
|
||||||
# hack directly into the 4-bit color buffer instead of:
|
|
||||||
# epd.pixel(offset_x + x, offset_y + y, color_to_index(color))
|
|
||||||
buffer_pos = (offset_x + x + (offset_y + y) * epd_resolution[0])
|
|
||||||
buffer_index = buffer_pos // 2
|
|
||||||
if buffer_pos % 2 == 1:
|
|
||||||
buffer_pos = buffer_pos << 4
|
|
||||||
epd.buffer[buffer_index] = color_index
|
|
||||||
def pixel_row_callback(x, y, colors):
|
def pixel_row_callback(x, y, colors):
|
||||||
pass
|
pass
|
||||||
#global epd
|
#global epd
|
||||||
|
Loading…
Reference in New Issue
Block a user