forked from me/IronOS-Meta
@@ -149,7 +149,9 @@ def animated_image_to_bytes(imageIn: Image, negative: bool, dither: bool, thresh
|
|||||||
# First we always start with a full first frame; future optimisation to check if we should or not
|
# First we always start with a full first frame; future optimisation to check if we should or not
|
||||||
outputData = [DATA_PROGRAMMED_MARKER]
|
outputData = [DATA_PROGRAMMED_MARKER]
|
||||||
outputData.append(frameTiming)
|
outputData.append(frameTiming)
|
||||||
outputData.extend(get_screen_blob([0x00] * (LCD_NUM_BYTES), frameData[0]))
|
first_frame = get_screen_blob([0x00] * (LCD_NUM_BYTES), frameData[0])
|
||||||
|
outputData.extend(first_frame)
|
||||||
|
print(f"Frame 0 encoded to {len(first_frame)} bytes")
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Format for each frame block is:
|
Format for each frame block is:
|
||||||
@@ -162,10 +164,11 @@ def animated_image_to_bytes(imageIn: Image, negative: bool, dither: bool, thresh
|
|||||||
for id in range(1, len(frameData)):
|
for id in range(1, len(frameData)):
|
||||||
frameBlob = get_screen_blob(frameData[id - 1], frameData[id])
|
frameBlob = get_screen_blob(frameData[id - 1], frameData[id])
|
||||||
if (len(outputData) + len(frameBlob)) > LCD_PAGE_SIZE:
|
if (len(outputData) + len(frameBlob)) > LCD_PAGE_SIZE:
|
||||||
print(f"Truncating animation after {id} frames as we are out of space")
|
print(f"Truncating animation after {id-1} frames as we are out of space")
|
||||||
break
|
break
|
||||||
print(f"Frame {id} encoded to {len(frameBlob)} bytes")
|
print(f"Frame {id} encoded to {len(frameBlob)} bytes")
|
||||||
outputData.extend(frameBlob)
|
outputData.extend(frameBlob)
|
||||||
|
print(f"Total size used: {len(outputData)} of 1024 bytes")
|
||||||
return outputData
|
return outputData
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user