diff options
Diffstat (limited to 'test/upscaler/img2coe.py')
-rwxr-xr-x | test/upscaler/img2coe.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/upscaler/img2coe.py b/test/upscaler/img2coe.py new file mode 100755 index 0000000..fb4c442 --- /dev/null +++ b/test/upscaler/img2coe.py @@ -0,0 +1,28 @@ +#!/bin/python3 + +from PIL import Image +import sys + +# return array of 12-bit color values (0bRRRGGGBBB) +def pixeldata(): + image = Image.open(sys.argv[-1]) # use last argument as input image file + pixels = image.load() + pixarr = [] + w,h = image.size + for y in range(h): + for x in range(w): + color = pixels[x, y] + crushed_color = ((color[0] >> 4) << 8 | (color[1] >> 4) << 4 | (color[2] >> 4) << 0) + pixarr.append(crushed_color) + return pixarr + +if __name__ == "__main__": + # get array of 12-bit pixels + pixels = pixeldata() + # coe file header + print("memory_initialization_radix=16;\nmemory_initialization_vector=", end='') + # format pixel value as 12-bit hexadecimal with padding seperated by comma and space + formatted_pixels = ','.join([f"{hex(c)[2:].zfill(3)}" for c in pixels]) + print(f"{formatted_pixels};") + + |