【星闪】OLED屏幕教程——实现短视频效果
这篇文章分享了在星闪开发板上驱动OLED屏幕实现视频播放,延续之前几篇文章的思路,用取模数组的方法进行移植;文中,我使用了Python作为取模方法进行批量取模,而取模软件一张张依次取模过于繁琐,其中我附上了关键代码,以供参考;希望对各位有所帮助
·
系列文章目录
前言
在之前的几篇文章中,已经实现了图片、简单动图、GIF图的效果。所以这篇文章分享的是如何将视频取模放到OLED屏幕中显示。
一、视频处理
首先准备好想要显示的视频,用Photoshop把它转成GIF图。
然后使用软件将GIF调节大小为128*64像素、减少帧数(抽帧),并导出每一帧的JPEG格式。
调节图片大小


减少帧数

导出每一帧图片
二、Python脚本取模
如果手动对每一帧图片进行处理取模很繁琐,所以我使用python对文件夹内所有JPEG文件进行单色转换,按逐行式、顺向的方式进行取模,并且输出生成.c文件。
1.关键代码
def jpg_to_bmp(input_folder, output_folder, threshold=150):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
bmp_files = []
for filename in os.listdir(input_folder):
if filename.lower().endswith(".jpg"):
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path).convert("1") # 转换为单色图像
bmp_filename = os.path.splitext(filename)[0] + ".bmp"
bmp_path = os.path.join(output_folder, bmp_filename)
img.save(bmp_path)
bmp_files.append(bmp_path)
return bmp_files
def bmp_to_c51_array(bmp_path):
img = Image.open(bmp_path)
width, height = img.size
pixels = img.load()
array_name = os.path.splitext(os.path.basename(bmp_path))[0]
c51_array = []
for y in range(height):
byte = 0
for x in range(width):
pixel = 1 if pixels[x, y] == 255 else 0 # 阴码:黑色为1,白色为0
byte |= pixel << (7 - (x % 8))
if (x + 1) % 8 == 0 or x == width - 1:
c51_array.append(byte)
byte = 0
hex_values = [f"0x{value:02X}" for value in c51_array]
return array_name, hex_values
2.取模效果
自动将不同帧数按顺序取模为数组导入到C文件中
三、C语言代码
将Python生成的取模代码复制到C语言中
uint8_t const photo[][1024]={
``将Python生成的取模代码放在这里,下仅展示一部分``
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF7, 0xBB, 0x6D,
0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xB7, 0xBE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xED, 0xB7,
0xEE, 0xF7, 0x7B, 0xBD, 0xDD, 0xDF, 0x7D, 0xDE, 0xFB, 0xEF, 0xBD, 0xDD, 0xEE, 0xDF, 0xBF, 0xFD,
0xFF, 0xDF, 0xEF, 0xF7, 0xFF, 0xFB, 0xEF, 0xFB, 0xDF, 0x7D, 0xF7, 0xFF, 0xBF, 0xFE, 0xFB, 0xB7,
0xDB, 0xFD, 0xFE, 0xFF, 0x77, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x77, 0xFB, 0xEF, 0xEF, 0xFF,
0xFF, 0x7F, 0xBF, 0xDF, 0xFF, 0xEE, 0xF7, 0xEF, 0xF7, 0xDF, 0x7F, 0xFE, 0xFF, 0x7B, 0xBE, 0xDD,
0xFF, 0xEF, 0xF7, 0xFB, 0xDD, 0xFF, 0xDF, 0xFE, 0xDE, 0xFB, 0xED, 0xDF, 0xDD, 0xFE, 0xFF, 0xF7,
0xDB, 0xFD, 0xDE, 0xEF, 0x7F, 0xBB, 0xFD, 0xBF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xDF, 0xF6, 0xDF,
0xFF, 0x77, 0xFF, 0xBF, 0xFF, 0xFF, 0x7F, 0xF6, 0xFB, 0xB7, 0x7F, 0x7F, 0x77, 0x77, 0xBF, 0xFD,
0xEF, 0xDF, 0x7B, 0xFE, 0xF6, 0xFF, 0xF7, 0xFB, 0xAF, 0xFF, 0xED, 0xEF, 0xFF, 0xFD, 0xF6, 0xEF,
0xFD, 0xFF, 0xEF, 0xFB, 0xFF, 0xDB, 0xDF, 0x55, 0x7F, 0xFD, 0xFF, 0xFD, 0xDB, 0xDF, 0xDF, 0xBF,
0xBF, 0xFB, 0xFF, 0x6F, 0xDF, 0xFF, 0x7F, 0xAA, 0x95, 0xB7, 0xBF, 0xBF, 0xFF, 0x7E, 0xFD, 0xFB,
0xF7, 0x6F, 0x7D, 0xFF, 0xFB, 0x7F, 0xFD, 0x54, 0x57, 0xFF, 0xF6, 0xF7, 0x7D, 0xF7, 0xEF, 0xEF,
0xFF, 0xFF, 0xEF, 0xFE, 0xFF, 0xF7, 0xFD, 0x49, 0x55, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0x7E, 0xFD,
0xDD, 0xDD, 0xFF, 0xBB, 0xDF, 0xDE, 0xEA, 0xA4, 0xA9, 0x6D, 0xBF, 0xFD, 0xFF, 0xBB, 0xF7, 0xB7,
0xFF, 0xFF, 0xBD, 0xFF, 0xFB, 0x7F, 0xFD, 0x2A, 0x25, 0xFF, 0xF6, 0xDF, 0xBB, 0xEF, 0xBF, 0xFF,
0xF7, 0x77, 0xF7, 0xEF, 0xFF, 0xFF, 0xB4, 0x80, 0x92, 0x7F, 0xFF, 0xFB, 0xFE, 0xFE, 0xFB, 0x7B,
0xDF, 0xFE, 0xFF, 0xBE, 0xDF, 0xF6, 0xFA, 0x55, 0x4A, 0xF7, 0x7F, 0xEF, 0xEF, 0xFB, 0xEF, 0xDF,
0xFE, 0xEF, 0xDE, 0xFF, 0xFB, 0x7F, 0xF9, 0x20, 0x22, 0xDF, 0xED, 0xBF, 0x7F, 0x6F, 0xFE, 0xFB,
0xFB, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFC, 0x8A, 0x94, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x77, 0xEF,
0xDF, 0xDD, 0xF7, 0xEF, 0xBF, 0xDB, 0xB4, 0x40, 0x42, 0xFD, 0xBF, 0xFB, 0xBD, 0xDD, 0xDF, 0x7E,
0xFF, 0x7F, 0xBE, 0xFF, 0xF6, 0xFF, 0xFD, 0x2A, 0x89, 0x6F, 0xFB, 0x6F, 0xFF, 0xFF, 0xFD, 0xF7,
0xF7, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFC, 0x82, 0x42, 0xFF, 0xFF, 0xFF, 0x77, 0x77, 0xF7, 0xDF,
0xDF, 0xEF, 0xF7, 0xBB, 0xEF, 0xDF, 0xF6, 0x55, 0x51, 0xFD, 0xDF, 0xFD, 0xFF, 0xFE, 0xDF, 0x7D,
0xFD, 0xBF, 0xDE, 0xFF, 0xFE, 0xFB, 0xDF, 0x02, 0x8B, 0xEF, 0xFB, 0x6F, 0xEE, 0xDF, 0xFF, 0xF7,
0xFF, 0xFB, 0x7F, 0xFF, 0xBF, 0xFF, 0xFF, 0x55, 0x45, 0xBF, 0xFF, 0xFF, 0xBF, 0xFB, 0x76, 0xFF,
0xDB, 0xFF, 0xFF, 0xDB, 0xFB, 0xEF, 0x7F, 0xA2, 0xB3, 0xFF, 0x6F, 0xFD, 0xFD, 0xFF, 0xFF, 0xDD,
0xFF, 0x6F, 0xF6, 0xFF, 0xEF, 0xBF, 0xF6, 0xDA, 0x97, 0xFD, 0xFE, 0xDF, 0xF7, 0xDD, 0xDB, 0x7F,
0xEF, 0xFD, 0xBF, 0xFE, 0xFF, 0xFF, 0xFF, 0xEB, 0x6A, 0xF7, 0xFB, 0xFB, 0xBF, 0xF7, 0xFF, 0xF7,
0xFD, 0xFF, 0xFF, 0xDB, 0xFE, 0xFB, 0xBF, 0xAD, 0xB3, 0xDF, 0xEF, 0xFF, 0xFE, 0xFF, 0x77, 0xDD,
0xBF, 0xB7, 0xED, 0xFF, 0xB7, 0xFF, 0xF7, 0xEA, 0xA9, 0x7F, 0xBF, 0xDE, 0xEF, 0xBD, 0xFE, 0xFF,
0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xDE, 0xFE, 0xBB, 0x51, 0xFE, 0xFF, 0x7B, 0xFD, 0xF7, 0xDB, 0xDF,
0xFE, 0xFB, 0xFF, 0x6E, 0xFF, 0x7F, 0xFF, 0xCD, 0x61, 0x6F, 0xFD, 0xFF, 0xDF, 0xFF, 0xFF, 0x7B,
0xDF, 0xDF, 0xB7, 0xFF, 0xED, 0xFB, 0xDA, 0x8A, 0xA1, 0xBF, 0xF7, 0xFF, 0x7F, 0x6E, 0xDF, 0xFE,
0xFB, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0x4A, 0x85, 0x6B, 0xDF, 0xDB, 0xF7, 0xFF, 0xFB, 0xB7,
0xFF, 0x76, 0xFD, 0xBF, 0xBF, 0xEF, 0x6A, 0x85, 0x41, 0xBE, 0xFF, 0xFF, 0xFE, 0xF7, 0x6E, 0xFF,
0xDF, 0xFF, 0xEF, 0xFE, 0xFB, 0xBF, 0xF7, 0x85, 0x11, 0x55, 0xFE, 0xFD, 0xBB, 0xDF, 0xFF, 0xED,
0xFB, 0xBF, 0xBF, 0xEF, 0xFF, 0xFF, 0x5A, 0x90, 0x02, 0xEF, 0x77, 0xDF, 0xFF, 0xFD, 0xDD, 0xBF,
0xEF, 0xF6, 0xFD, 0xBF, 0xDF, 0xFB, 0xEA, 0x80, 0x89, 0xB5, 0xDF, 0xF7, 0xDF, 0x77, 0xFF, 0xFB,
0xFE, 0xFF, 0xFF, 0xFD, 0xFD, 0xDE, 0xAA, 0x90, 0x02, 0xAA, 0xBE, 0xFE, 0xFB, 0xFF, 0x77, 0x6F,
0xDF, 0xDF, 0xEF, 0xF7, 0xF7, 0xFF, 0x6D, 0xC2, 0x0A, 0xDF, 0x7F, 0xDF, 0xFF, 0xBD, 0xFD, 0xFF,
0xFB, 0xFB, 0x7D, 0xDF, 0xBF, 0xFA, 0xAA, 0x80, 0x23, 0x55, 0xAF, 0xFD, 0xDD, 0xF7, 0xDF, 0xFB,
0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x6D, 0xB6, 0xC8, 0x05, 0x55, 0x76, 0xF7, 0xF7, 0xDF, 0xF7, 0x6F,
0xDF, 0xEF, 0xEF, 0x7D, 0xF7, 0xFD, 0x5A, 0x81, 0x12, 0xAB, 0x57, 0xDF, 0xBF, 0x7E, 0xDF, 0xFD,
0xFB, 0xBE, 0xFD, 0xF7, 0xBF, 0xF5, 0xAB, 0x44, 0x05, 0x55, 0x57, 0xFF, 0xFF, 0xFB, 0xFD, 0xB7,
0xEF, 0xFF, 0xDF, 0xFF, 0xFD, 0xBA, 0xB5, 0xC0, 0x46, 0xD5, 0xAF, 0x7D, 0xF7, 0xEF, 0xF7, 0xFF,
0xFE, 0xF7, 0x7F, 0xDF, 0xF7, 0xFD, 0x5D, 0x44, 0x0B, 0x56, 0x57, 0xEF, 0xBD, 0xBF, 0x5F, 0x6F,
0xBF, 0xDF, 0xFB, 0x7D, 0xBF, 0xEA, 0xD5, 0xA0, 0x85, 0x55, 0xAB, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD,
0xF7, 0xFD, 0xEF, 0xFF, 0xFF, 0xF5, 0x5A, 0xD2, 0x2A, 0xD5, 0x57, 0x7B, 0x6E, 0xEF, 0xF7, 0xF7,
0xFE, 0xFF, 0xFF, 0xF7, 0xFB, 0x6D, 0x6F, 0x40, 0x8D, 0x6A, 0xAB, 0xEF, 0xFF, 0xFF, 0x7F, 0x5F,
0xDF, 0xDB, 0xBD, 0xDF, 0x6F, 0xEA, 0xB2, 0xB1, 0x06, 0xB5, 0x4F, 0xFF, 0xFB, 0xBB, 0xEF, 0xFD,
0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xED, 0xAD, 0xD1, 0x1A, 0xD5, 0xA5, 0xBD, 0xBF, 0xFF, 0xBD, 0xF7,
0xFF, 0x7E, 0xFF, 0xBD, 0xFE, 0xEA, 0xF6, 0xA1, 0x0B, 0x55, 0x57, 0xFF, 0xF6, 0xDB, 0xFF, 0x7F,
0xDF, 0xEF, 0xDE, 0xFF, 0xDF, 0xED, 0x55, 0x62, 0x15, 0x55, 0x2B, 0xEF, 0xDF, 0xFF, 0x6D, 0xDD,
0xFB, 0xBD, 0xFF, 0xF7, 0x7B, 0xD5, 0xAA, 0xB0, 0x96, 0xAB, 0x4B, 0xBD, 0xFF, 0xEF, 0xFF, 0xF7,
0xEF, 0xFF, 0xF7, 0xFF, 0xFF, 0xEA, 0xEB, 0xD0, 0x1B, 0xB5, 0x57, 0xFF, 0xBB, 0x7D, 0xDB, 0xBF,
0xFE, 0xF7, 0x7E, 0xDF, 0xFE, 0xD6, 0xAA, 0x68, 0x15, 0x55, 0x2B, 0x77, 0xFF, 0xF7, 0x7F, 0xFD,
0xDF, 0xDF, 0xEF, 0xFB, 0x6F, 0xEA, 0xDB, 0xB1, 0x2D, 0x5A, 0x95, 0xFE, 0xED, 0xBF, 0xFB, 0x6F,
0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xD2, 0xAA, 0xA0, 0x36, 0xAB, 0x57, 0xFB, 0xFF, 0xFD, 0xDF, 0xFF,
0xF7, 0xFF, 0xBB, 0x6F, 0xFB, 0x6A, 0xA5, 0x70, 0x15, 0x6D, 0x2A, 0xDF, 0xBE, 0xEF, 0xFD, 0xB5,
0xDF, 0xB7, 0xFF, 0xFD, 0xBF, 0xD9, 0x55, 0x52, 0x35, 0x55, 0x2B, 0xFF, 0xF7, 0xFE, 0xEF, 0xFF,
0xFF, 0xFE, 0xEF, 0xFF, 0xFF, 0xD4, 0xD4, 0xD8, 0x2D, 0x6A, 0xAB, 0xF6, 0xFF, 0x77, 0xBD, 0xDF,
},
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7B, 0xDD, 0xB7,
0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0x6D, 0x6B, 0xEF, 0x7F, 0xFD,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xF6, 0xDF,
0xEE, 0xF7, 0x77, 0x77, 0x77, 0x7B, 0xBD, 0xF7, 0xDF, 0x7F, 0xBB, 0xEF, 0xBE, 0xFD, 0xDF, 0xF7,
0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xEF, 0xF7, 0xBE, 0xFB, 0xED, 0xFF, 0xBD, 0xF7, 0xF7, 0xFD, 0xBD,
0xDB, 0xFD, 0xDD, 0xDD, 0xDD, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xEE, 0xFF, 0xFF, 0xDF, 0x77, 0xFF,
0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xBD, 0xFE, 0xF7, 0xDF, 0x7F, 0x7F, 0xF7, 0x6D, 0xFD, 0xDF, 0x6D,
0xFF, 0xEF, 0x77, 0x77, 0x77, 0xFF, 0xEF, 0xDF, 0x7B, 0xED, 0xFB, 0xDF, 0xFF, 0x77, 0xFD, 0xFF,
0xDB, 0xFD, 0xFF, 0xFF, 0xFE, 0xEF, 0xBF, 0xFD, 0xFF, 0xFF, 0xEF, 0xFD, 0xDF, 0xFF, 0xF7, 0xDB,
0xFF, 0x77, 0xDD, 0xDD, 0xDF, 0xFD, 0xFB, 0x7F, 0xFE, 0xFF, 0xBF, 0x7F, 0xFB, 0xBD, 0xBF, 0x7F,
0xEF, 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xF7, 0xDB, 0xDB, 0xFF, 0xEF, 0x7F, 0xEF, 0xFB, 0xF7,
0xFD, 0xFE, 0xF7, 0x77, 0xF6, 0xFF, 0xBF, 0xFF, 0x7F, 0xFF, 0xFB, 0xFD, 0xED, 0xFE, 0xDF, 0xDD,
0xBF, 0xFB, 0xDF, 0xFE, 0xDF, 0xF6, 0xF6, 0xDF, 0xFF, 0xFE, 0xDF, 0x7F, 0xFF, 0xBB, 0xFD, 0xFF,
0xF7, 0x6F, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFB, 0xF7, 0x6F, 0xFF, 0xEF, 0x77, 0xFF, 0xEF, 0x6F,
0xFF, 0xFF, 0x7B, 0x7F, 0xFB, 0x7F, 0xFF, 0xEE, 0xBF, 0xFD, 0xFB, 0xBD, 0xFE, 0xDD, 0xBD, 0xFB,
0xDD, 0xFD, 0xFF, 0xFB, 0x6F, 0xED, 0xB6, 0xF5, 0x57, 0xFF, 0xDF, 0xFF, 0xDF, 0xF7, 0xFF, 0xDF,
0xFF, 0xB7, 0xEF, 0xEF, 0xFF, 0xFF, 0xFF, 0xAA, 0xBD, 0xB7, 0xFE, 0xF7, 0xFB, 0xFF, 0xDB, 0x7D,
0xF7, 0xFF, 0xFD, 0xBF, 0xFF, 0x7F, 0xFE, 0xD5, 0x57, 0xFF, 0x7B, 0xFE, 0xFF, 0x6E, 0xFF, 0xF7,
0xDE, 0xEF, 0x7F, 0xFE, 0xDB, 0xED, 0xBB, 0x24, 0xAA, 0xFD, 0xEF, 0xDF, 0xDD, 0xFF, 0xEE, 0xFF,
0xFF, 0xFD, 0xEF, 0xFB, 0xFF, 0xFF, 0xFC, 0x92, 0x2A, 0xEF, 0xFF, 0xFB, 0xFF, 0xFB, 0x7F, 0xDD,
0xFB, 0xBF, 0xFD, 0xBF, 0xFF, 0x7F, 0xEA, 0xA9, 0x52, 0xBF, 0xFE, 0xFF, 0x77, 0xBF, 0xF6, 0xF7,
0xDF, 0xF7, 0xBF, 0xFF, 0xBB, 0xF6, 0xFA, 0x84, 0x2A, 0xFF, 0x77, 0xDF, 0xFE, 0xEE, 0xDF, 0xFF,
0xFE, 0xFF, 0xF7, 0xEE, 0xFF, 0xDF, 0xE9, 0x29, 0x44, 0xBD, 0xFF, 0xFB, 0xDF, 0xFF, 0xFD, 0xBB,
0xF7, 0xDE, 0xFE, 0xFF, 0xFF, 0x7F, 0xBA, 0x44, 0x2A, 0xFF, 0xFE, 0xFF, 0x7B, 0xF7, 0x77, 0xEF,
0xDF, 0xFB, 0xFF, 0xFB, 0xED, 0xFE, 0xF9, 0x21, 0x41, 0x6F, 0xDB, 0xDF, 0xFF, 0x7D, 0xFF, 0xBE,
0xFE, 0xFF, 0xDB, 0xBF, 0xBF, 0xFB, 0xFA, 0x14, 0x2A, 0xBE, 0xFF, 0xFB, 0xEF, 0xDF, 0xDD, 0xFB,
0xFB, 0xDF, 0x7F, 0xF7, 0xFF, 0xEF, 0xF8, 0x81, 0x01, 0x7F, 0xFF, 0xFF, 0x7D, 0xFF, 0xFF, 0xEF,
0xDF, 0xFB, 0xFE, 0xFF, 0x7B, 0xBF, 0xDC, 0x54, 0x54, 0xFB, 0xEE, 0xDD, 0xFF, 0xED, 0xB6, 0xFF,
0xFF, 0x7F, 0xEF, 0xFD, 0xFF, 0xFF, 0xFD, 0x01, 0x02, 0xEF, 0xBF, 0xFF, 0xEF, 0x7F, 0xFF, 0xBB,
0xED, 0xEF, 0x7F, 0xB7, 0xEF, 0xFE, 0xFC, 0xAA, 0xA9, 0x7F, 0xFF, 0xEF, 0xBD, 0xF7, 0x7B, 0xFF,
0xFF, 0xFD, 0xFB, 0xFF, 0xFE, 0xEF, 0xEE, 0x02, 0x82, 0xFE, 0xFB, 0x7D, 0xFF, 0xDF, 0xEF, 0x6D,
0xBF, 0xBF, 0xEF, 0xFF, 0xBF, 0xFF, 0xBF, 0x54, 0xA5, 0xFB, 0xEF, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF,
0xF6, 0xFF, 0xBF, 0x6E, 0xFB, 0xFB, 0xFD, 0xA2, 0x89, 0xDF, 0xFF, 0xEF, 0x7E, 0xF7, 0xBB, 0x77,
0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xAA, 0xA5, 0x7F, 0xFE, 0xFD, 0xEF, 0xDF, 0xEF, 0xDE,
0xDF, 0xDF, 0xFB, 0xFB, 0xEF, 0xFE, 0xEF, 0xA5, 0x55, 0xFE, 0xDB, 0xF7, 0xFD, 0xFE, 0xFE, 0xFF,
0xFB, 0x7F, 0xEF, 0x6F, 0xBE, 0xF7, 0xFD, 0x76, 0xB0, 0xB7, 0xFF, 0xDF, 0xDF, 0xBB, 0xDF, 0xF7,
0xFF, 0xFB, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xA9, 0xDF, 0xFF, 0x7F, 0x7F, 0xFF, 0xFB, 0x7D,
0xDD, 0xFF, 0xFF, 0xFE, 0xFB, 0xDF, 0x6A, 0xD7, 0x50, 0xBB, 0xBB, 0xFD, 0xF6, 0xEE, 0xEF, 0xDF,
0xFF, 0xB7, 0xED, 0xBB, 0xEF, 0xFD, 0xFD, 0x55, 0x51, 0xD7, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xF7,
0xEF, 0xFF, 0x7F, 0xFF, 0xFF, 0xBF, 0xD7, 0x8A, 0xA1, 0x5D, 0xEF, 0xDB, 0xDD, 0xBB, 0xFB, 0xFD,
0xFD, 0xFD, 0xFF, 0xEF, 0xBE, 0xFF, 0xBA, 0x85, 0x41, 0x6A, 0xBE, 0xFF, 0xFF, 0xFF, 0x7F, 0xB7,
0xDF, 0xB7, 0xEE, 0xFE, 0xFF, 0xF6, 0xD5, 0x45, 0x42, 0xAF, 0xFF, 0xFE, 0xEF, 0xDB, 0xEE, 0xFF,
0xFE, 0xFF, 0xFF, 0xFB, 0xF7, 0xFF, 0x6D, 0x85, 0x05, 0x54, 0xB7, 0xB7, 0xFD, 0xFF, 0xFB, 0xEF,
0xF7, 0xFF, 0x7B, 0xBF, 0xFF, 0x7D, 0xB5, 0x40, 0x11, 0xB7, 0x7E, 0xFF, 0xBF, 0x77, 0x6F, 0xBD,
0xDF, 0xDB, 0xEF, 0xFF, 0xDF, 0xF6, 0xAA, 0x88, 0x02, 0xB5, 0xAF, 0xFD, 0xF7, 0xFF, 0xFF, 0xFF,
0xFD, 0xFF, 0xFF, 0xEE, 0xFD, 0xFD, 0x6A, 0xC0, 0x89, 0x56, 0xBB, 0xEF, 0xFE, 0xDD, 0xBB, 0x6D,
0xFF, 0xBE, 0xFD, 0xBF, 0xFF, 0xDA, 0xAB, 0x40, 0x02, 0xAA, 0xCF, 0xBF, 0x6F, 0xFF, 0xFF, 0xFF,
0xDB, 0xFB, 0xDF, 0xFD, 0xEF, 0xFD, 0xAD, 0x44, 0x25, 0x55, 0x6F, 0xFD, 0xFF, 0xEE, 0xED, 0xB7,
0xFF, 0xEF, 0xFB, 0xF7, 0xFE, 0xF4, 0xB5, 0x80, 0x85, 0xAA, 0xA6, 0xF7, 0xFA, 0xBF, 0xFF, 0xFE,
0xEE, 0xFF, 0xEF, 0xBF, 0xBB, 0xF6, 0xD5, 0x44, 0x12, 0xAA, 0xAB, 0xFF, 0xBF, 0xFB, 0x6E, 0xEF,
0xFF, 0xDE, 0xFF, 0xFF, 0xFF, 0xDA, 0xAD, 0xA0, 0x06, 0xAA, 0xAF, 0xDF, 0xF7, 0xFF, 0xFB, 0xFB,
0xBB, 0xFF, 0xBE, 0xF6, 0xFF, 0xEC, 0xB5, 0x44, 0x4A, 0xB5, 0x57, 0x7D, 0xDF, 0x6D, 0xDF, 0xBF,
0xFF, 0x77, 0xFB, 0xFF, 0xEE, 0xF6, 0xAB, 0x61, 0x05, 0x52, 0xA7, 0xF7, 0xFF, 0xFF, 0xFE, 0xEE,
0xF7, 0xFE, 0xEF, 0xDF, 0xFF, 0xEA, 0xB5, 0xA0, 0x4B, 0x6A, 0xAB, 0xFF, 0x7B, 0xBB, 0x6F, 0xFB,
0xDF, 0xDF, 0xFF, 0xFD, 0xBB, 0xAA, 0xDD, 0x52, 0x8A, 0xAB, 0x57, 0x7F, 0xEF, 0xFF, 0xFB, 0x7F,
0xFE, 0xFB, 0xBE, 0xF7, 0xFF, 0xED, 0x65, 0xA1, 0x0A, 0xD5, 0x4B, 0xED, 0xFE, 0xDD, 0xDF, 0xDF,
0xFB, 0xFF, 0xFB, 0xDF, 0xFE, 0xEA, 0xB6, 0xD1, 0x0D, 0x55, 0x2B, 0xFF, 0xBF, 0xF7, 0xFD, 0xF5,
0xDF, 0xB6, 0xEF, 0xFF, 0x6F, 0xEB, 0x55, 0x50, 0x95, 0xAA, 0x97, 0x77, 0xF6, 0xFF, 0x77, 0xBF,
0xFF, 0xFF, 0xFF, 0xBD, 0xFF, 0xD5, 0xEA, 0xD1, 0x0A, 0xAA, 0xAB, 0xFE, 0xFF, 0xDF, 0xDF, 0xFF,
0xF6, 0xFF, 0xBE, 0xFF, 0xFB, 0x6A, 0x55, 0x50, 0x1B, 0x55, 0x55, 0xDF, 0xDB, 0xFB, 0x7D, 0xB6,
0xDF, 0xDB, 0xFB, 0xF7, 0xDF, 0xEA, 0xD5, 0xB2, 0x15, 0x5B, 0x17, 0xFB, 0xFF, 0x7F, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xD3, 0x6A, 0xD0, 0x2D, 0xAA, 0xA9, 0xEF, 0x7D, 0xED, 0xED, 0xDB,
0xFB, 0x7D, 0xEF, 0xBD, 0xFD, 0xD9, 0x56, 0xB0, 0x16, 0xAA, 0x2B, 0xBF, 0xEF, 0xFF, 0xBF, 0x7F,
},
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xB7,
0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xD6, 0xBD, 0xEF, 0xFD,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xDF,
0xFE, 0xF7, 0xDF, 0x7D, 0xF7, 0x7B, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE, 0xFB, 0xBD, 0xF7, 0x77, 0xF7,
0xDB, 0xDE, 0xFB, 0xEF, 0xBF, 0xEF, 0x7D, 0xBE, 0xDF, 0x6F, 0xB7, 0xDF, 0xF7, 0xBD, 0xFE, 0xDD,
0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xDB, 0xFF,
0xEF, 0x7F, 0x6E, 0xF6, 0xEF, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xF7, 0xDE, 0xEF, 0x7F, 0xBB,
0xFD, 0xF7, 0xFF, 0xDF, 0xFF, 0xFB, 0x7B, 0x7D, 0xBE, 0xDF, 0x6F, 0xBF, 0xFB, 0xFB, 0xFD, 0xFF,
0xBF, 0xFD, 0xFB, 0xFF, 0xBD, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF, 0xBF, 0xD7, 0xDB,
0xF7, 0xBF, 0xBF, 0x7B, 0xF7, 0xBF, 0xEF, 0xDF, 0xEF, 0xF7, 0xFB, 0x77, 0xFF, 0xF6, 0xFF, 0x7F,
0xFF, 0xF7, 0xF7, 0xEF, 0xFF, 0xFE, 0xFD, 0xFB, 0x7D, 0xBE, 0xDF, 0xFF, 0xED, 0xDF, 0xFD, 0xED,
0xEE, 0xFE, 0xFF, 0xFE, 0xDE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xFF, 0xFF, 0x6F, 0xFF,
0xFF, 0xDF, 0xDD, 0xBF, 0xFF, 0xEF, 0xDF, 0x6F, 0xEF, 0xF7, 0xF6, 0xFB, 0xDE, 0xF7, 0xFF, 0x77,
0xDD, 0xFB, 0xFF, 0xFB, 0xF7, 0xFF, 0xFB, 0xFD, 0xBD, 0xBE, 0xDF, 0xFF, 0xFB, 0xDE, 0xDB, 0xDE,
0xFF, 0xEF, 0x77, 0xEF, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x7F, 0xFF, 0xFF, 0x7F,
0xF7, 0x7F, 0xFE, 0xFF, 0xFF, 0xDB, 0xDF, 0x6F, 0xFF, 0xF7, 0xFD, 0xFB, 0xEF, 0x7B, 0xBB, 0xF7,
0xDF, 0xFD, 0xDF, 0xFE, 0xF7, 0xFF, 0xFB, 0xFE, 0xED, 0xDF, 0x77, 0xEF, 0xFD, 0xEF, 0xFF, 0xDD,
0xFE, 0xEF, 0xFF, 0xB7, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0xFE, 0xDB, 0x7F,
0xFB, 0xFF, 0x76, 0xFF, 0xFF, 0xDD, 0xBF, 0x77, 0xBF, 0xFD, 0xFF, 0xFD, 0xEF, 0x7B, 0xFF, 0xF7,
0xDF, 0xFB, 0xFF, 0xFE, 0xFF, 0xFF, 0xF7, 0xFE, 0xFD, 0xBF, 0xDB, 0xEF, 0xFD, 0xEF, 0xEE, 0xFE,
0xFF, 0x6F, 0xFF, 0xEF, 0xED, 0xF7, 0xFF, 0xFF, 0xF7, 0xF7, 0xFF, 0xBF, 0xBF, 0xFF, 0x7F, 0xDB,
0xF7, 0xFF, 0x6D, 0xBF, 0xBF, 0xBF, 0xBE, 0xDB, 0xFF, 0xFF, 0x7E, 0xFE, 0xF7, 0xBD, 0xF6, 0xFF,
0xDF, 0xFD, 0xFF, 0xFD, 0xFF, 0xFE, 0xFB, 0xFF, 0xDF, 0xBF, 0xF7, 0xFB, 0xFE, 0xF7, 0xDF, 0xDD,
0xFE, 0xDF, 0xFF, 0xFF, 0xFD, 0xFB, 0xFF, 0xFF, 0x7E, 0xFB, 0xFF, 0xEF, 0xFF, 0xFF, 0xFD, 0xF7,
0xFB, 0xFB, 0xDB, 0x77, 0xEF, 0xDF, 0xFF, 0xEF, 0xFF, 0xFF, 0xBF, 0xBF, 0xB7, 0xDE, 0xDF, 0xBF,
0xDF, 0xEF, 0xFF, 0xFF, 0x7F, 0xFF, 0xDB, 0xBD, 0xF7, 0xEF, 0xFB, 0xFE, 0xFE, 0xFB, 0xF6, 0xFD,
0xFF, 0x7F, 0x7F, 0xDD, 0xFE, 0xFE, 0xFF, 0xFE, 0xBF, 0xBE, 0xFF, 0xFB, 0xFB, 0xFF, 0xFF, 0xEF,
0xF7, 0xFF, 0xF6, 0xFF, 0xF7, 0xEF, 0xFF, 0xEB, 0x6D, 0xFF, 0xEE, 0xDF, 0xEF, 0xB7, 0x5D, 0xFF,
0xDF, 0xDB, 0xDF, 0xFF, 0xDF, 0xFF, 0xEE, 0xF5, 0x77, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xB5,
0xFD, 0xFF, 0x7F, 0xEE, 0xFF, 0x7B, 0x7F, 0xAA, 0x9F, 0xF6, 0xFB, 0xFB, 0xFE, 0xFB, 0xED, 0xFF,
0xFF, 0xBF, 0xFE, 0xFF, 0xFD, 0xEF, 0xFD, 0xD5, 0x55, 0x7F, 0xDF, 0xBF, 0xFB, 0xDF, 0x7F, 0xDF,
0xDE, 0xFB, 0xFB, 0xFB, 0xF7, 0xFF, 0xF7, 0x52, 0x2B, 0xDF, 0xFF, 0xFE, 0xDF, 0xFD, 0xF7, 0x7B,
0xF7, 0xFF, 0xBF, 0xDF, 0xBF, 0xFF, 0xBD, 0x49, 0x55, 0x7E, 0xFD, 0xEF, 0xFF, 0x77, 0xDF, 0xFF,
0xFF, 0xDE, 0xFF, 0x7F, 0xFF, 0xBD, 0xFA, 0x94, 0x2A, 0xBB, 0xEF, 0xBD, 0xF7, 0xFF, 0xFD, 0xDB,
0xDE, 0xFB, 0xED, 0xFD, 0xFE, 0xFF, 0xEA, 0x42, 0x95, 0x6F, 0xFF, 0xFF, 0xBE, 0xDE, 0xEF, 0x7F,
0xFB, 0xFF, 0xFF, 0xF7, 0xDB, 0xF7, 0xF5, 0x28, 0x55, 0x5F, 0xBD, 0xF7, 0xFB, 0xFB, 0xBD, 0xF6,
0xFF, 0xDF, 0xBF, 0xDF, 0xFF, 0xFF, 0x69, 0x45, 0x12, 0xBF, 0xFF, 0xDF, 0x7F, 0xFF, 0xFF, 0xDF,
0xDF, 0x7D, 0xFB, 0xFF, 0x7F, 0xDF, 0xF4, 0x28, 0x49, 0x5E, 0xF7, 0x7F, 0xEF, 0x6E, 0xEF, 0x7F,
0xFB, 0xF7, 0xEF, 0x7F, 0xF7, 0x7F, 0xEA, 0x81, 0x24, 0xBF, 0xFF, 0xFD, 0xFD, 0xFF, 0xFB, 0xFB,
0xFF, 0xFF, 0xBF, 0xF7, 0xDF, 0xFB, 0x74, 0x28, 0x12, 0x5B, 0xDF, 0xF7, 0xBF, 0xF7, 0x7F, 0xDF,
0xDE, 0xDF, 0xFF, 0xDE, 0xFF, 0xFF, 0xF2, 0x84, 0x81, 0x7F, 0xFD, 0xBF, 0xF7, 0xBD, 0xED, 0x7B,
0xFB, 0xFD, 0xFB, 0x7F, 0xFD, 0xDF, 0xF8, 0x22, 0x2A, 0x2F, 0x7F, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
0xEF, 0xFF, 0xBF, 0xFF, 0xEF, 0xFE, 0xED, 0x08, 0x80, 0xBF, 0xF7, 0xF7, 0xDF, 0xEF, 0x6F, 0xDB,
0xFF, 0xB7, 0xFF, 0xFB, 0x7F, 0xFB, 0xF4, 0xA1, 0x4A, 0xBB, 0xFF, 0x7F, 0xFB, 0xFD, 0xFB, 0x7F,
0xDE, 0xFE, 0xED, 0xDF, 0xFE, 0xDF, 0xDA, 0x12, 0x10, 0xAF, 0xBD, 0xFD, 0xFF, 0x77, 0xEF, 0xF7,
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xF5, 0x44, 0xA5, 0x5A, 0xF7, 0xDF, 0xB7, 0xDF, 0xBE, 0xDE,
0xF7, 0xDB, 0xFF, 0x7B, 0x7F, 0xFF, 0x5D, 0x22, 0x80, 0xAF, 0xFF, 0xFB, 0xFF, 0x7E, 0xFB, 0xFF,
0xDE, 0xFF, 0xB7, 0xEF, 0xFF, 0xBB, 0xEA, 0x95, 0x52, 0xB5, 0x5F, 0xFF, 0xDD, 0xFB, 0xFF, 0xF7,
0xFF, 0xFE, 0xFF, 0xFF, 0xDB, 0xFE, 0xB5, 0x49, 0x51, 0x56, 0xFE, 0xDE, 0xFF, 0xEF, 0xDE, 0xDD,
0xFB, 0xB7, 0xFD, 0xBE, 0xFF, 0xEF, 0x5B, 0x55, 0x52, 0xAB, 0x77, 0xFB, 0xF7, 0xBF, 0x77, 0xFF,
0xDF, 0xFF, 0xDF, 0xFB, 0xFE, 0xFD, 0xAD, 0x15, 0x48, 0xB5, 0xAF, 0xFF, 0xDE, 0xFD, 0xFE, 0xEF,
0xFE, 0xFD, 0xFB, 0xEF, 0xF7, 0xFA, 0xD5, 0x4A, 0xA1, 0x55, 0x5E, 0xDF, 0x7F, 0xF7, 0xF7, 0xBD,
0xF7, 0xDF, 0xEF, 0xBF, 0xBF, 0xDD, 0x55, 0x4B, 0x52, 0xAA, 0xB7, 0xFB, 0xFB, 0xDF, 0xBF, 0xFF,
0xDF, 0xFB, 0x7F, 0xFF, 0xFF, 0x75, 0x55, 0x44, 0x81, 0x5A, 0xDF, 0xFF, 0xEF, 0x7E, 0xFB, 0x77,
0xFD, 0xEF, 0xFD, 0xFB, 0xF7, 0xFA, 0xAA, 0x82, 0x45, 0x4A, 0xA7, 0x6F, 0x7F, 0xFF, 0xEF, 0xFD,
0xFF, 0xBF, 0xDF, 0xBF, 0x7F, 0xEA, 0xAA, 0xA1, 0x02, 0xAA, 0xAD, 0xFD, 0xFD, 0xED, 0xFE, 0xDF,
0xDB, 0xFF, 0x7F, 0xFF, 0xEE, 0xF5, 0x55, 0x40, 0x12, 0x4A, 0xA7, 0xFF, 0xEF, 0xBF, 0xBB, 0xF7,
0xFF, 0xFB, 0xF6, 0xED, 0xFF, 0xEC, 0xAA, 0x84, 0x02, 0xA2, 0x97, 0xDF, 0xBF, 0xFE, 0xFF, 0xBD,
0xEE, 0xDF, 0xFF, 0xFF, 0xBF, 0xB6, 0xB5, 0x60, 0x95, 0x5A, 0xAB, 0xFB, 0xFB, 0x77, 0xEE, 0xFF,
0xFF, 0xFE, 0xDF, 0xBF, 0xF6, 0xEA, 0x96, 0x82, 0x02, 0xA4, 0xA7, 0x7F, 0x7F, 0xFF, 0xBB, 0xEF,
0xDF, 0xEF, 0xFB, 0xFB, 0xFF, 0xE5, 0x6A, 0xE0, 0x05, 0x55, 0x57, 0xEF, 0xEE, 0xDB, 0xFF, 0xBB,
0xFB, 0x7F, 0xFF, 0xEF, 0x7F, 0xD5, 0x5A, 0x90, 0x4A, 0xAA, 0x8B, 0xFD, 0xFF, 0xFE, 0xEE, 0xFF,
0xFF, 0xFB, 0x6E, 0xFF, 0xED, 0xEA, 0xAA, 0xD1, 0x05, 0x52, 0xAB, 0x7F, 0xBB, 0xEF, 0xFF, 0xED,
},
{
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBD, 0xEE, 0xDB,
0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDB, 0x6D, 0xB6, 0xDA, 0xF7, 0xBF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x6D,
0xFE, 0xF7, 0xDF, 0x7D, 0xF7, 0xDF, 0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xDF, 0x77, 0xDD, 0xDF, 0xFF,
0xDB, 0xDE, 0xFB, 0xEF, 0xBE, 0xFB, 0xED, 0xF6, 0xFB, 0x7D, 0xBE, 0xFB, 0xFE, 0xFF, 0x7D, 0xDB,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xED, 0xF7, 0xFF,
0xEF, 0x7F, 0x6E, 0xDD, 0xEF, 0x6E, 0xFF, 0x7F, 0xBF, 0xDF, 0xEF, 0xBD, 0xFB, 0xBF, 0xFF, 0x6D,
0xFD, 0xF7, 0xFF, 0xFF, 0xBD, 0xFF, 0xDB, 0xED, 0xF6, 0xFB, 0x7D, 0xF7, 0xBF, 0xFF, 0x6D, 0xFF,
0xBF, 0xFD, 0xFB, 0xF7, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xED, 0xFF, 0xDB,
0xF7, 0xBF, 0xBF, 0x7E, 0xF7, 0xBF, 0x7E, 0xFF, 0x7F, 0xBF, 0xDB, 0xBE, 0xEF, 0xBF, 0xDF, 0x7F,
0xFF, 0xF7, 0xF7, 0xFF, 0xDF, 0xFF, 0xEF, 0xDB, 0xED, 0xF6, 0xFF, 0xF7, 0xFE, 0xFB, 0xFB, 0xF7,
0xEE, 0xFE, 0xFF, 0xDB, 0xFE, 0xED, 0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xBB, 0xFF, 0x6F, 0xBD,
0xFF, 0xDF, 0xDD, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xBF, 0xB7, 0xDD, 0xFF, 0xDD, 0xFE, 0xFF,
0xDD, 0xFB, 0xFF, 0xBF, 0xF7, 0xBF, 0x6F, 0x6D, 0xED, 0xF6, 0xFF, 0xFF, 0xDF, 0x7F, 0xFB, 0xEF,
0xFF, 0xEF, 0x77, 0xF7, 0xDE, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x7B, 0xF7, 0x5F, 0xBB,
0xF7, 0x7F, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xED, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF,
0xDF, 0xFD, 0xDF, 0xFB, 0xFF, 0xEF, 0x6F, 0xEE, 0xDD, 0xFB, 0xBF, 0xFD, 0xEE, 0xDD, 0xEF, 0xDB,
0xFF, 0xBF, 0xFF, 0xBF, 0xED, 0xBF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0xFF, 0xFF, 0xBE, 0xFF,
0xFB, 0xF7, 0x76, 0xFF, 0xBF, 0xFD, 0xFF, 0xFB, 0xF7, 0xDF, 0xFB, 0xFF, 0x7B, 0xEE, 0xFB, 0xED,
0xDF, 0x7F, 0xFF, 0xED, 0xFF, 0xFF, 0xEF, 0xBF, 0xDF, 0x7D, 0xBF, 0xFF, 0xEF, 0x7B, 0xEF, 0xBF,
0xFF, 0xFD, 0xFF, 0xFF, 0xFB, 0xBF, 0xBD, 0xFF, 0x7F, 0xFF, 0xFE, 0xDB, 0xFF, 0xFF, 0xFE, 0xFF,
0xF6, 0xEF, 0xB6, 0xFF, 0xDF, 0xF6, 0xFF, 0xF7, 0xFF, 0xF7, 0xEF, 0xFF, 0x7B, 0xBF, 0x7B, 0xEB,
0xDF, 0xFF, 0xFF, 0xDD, 0xFF, 0xFF, 0xFF, 0xDF, 0xFB, 0xBF, 0x7F, 0xFF, 0xEF, 0xF7, 0xDF, 0xFF,
0xFF, 0xBB, 0xFF, 0xFF, 0xFB, 0x7F, 0xF7, 0x7E, 0xEF, 0xFF, 0xFB, 0x6D, 0xFE, 0xFD, 0xFE, 0xDD,
0xFB, 0xFF, 0x6D, 0xF7, 0x6F, 0xEF, 0xBF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xBF, 0xDF, 0xB7, 0xFF,
0xDF, 0xEF, 0xFF, 0xBF, 0xFF, 0xFD, 0xFF, 0xFB, 0xFE, 0xDF, 0xBF, 0xFF, 0xF7, 0xFB, 0xFE, 0xED,
0xFE, 0xFD, 0xFE, 0xFF, 0xFF, 0x7F, 0xFB, 0xBF, 0xBB, 0xFF, 0xF6, 0xDB, 0xFE, 0xEF, 0x77, 0xFF,
0xF7, 0xDF, 0xB7, 0xFB, 0x77, 0xF7, 0xDF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0x7B, 0xFF, 0xFF, 0x6F,
0xDF, 0xFF, 0xFF, 0xEF, 0xFF, 0xDF, 0x7F, 0xF7, 0xFF, 0xEF, 0xDF, 0xFF, 0xDF, 0xBD, 0xDB, 0xFB,
0xFE, 0xF6, 0xFE, 0xFF, 0xFD, 0xFF, 0xFD, 0xBE, 0xDD, 0xBF, 0xFD, 0xB6, 0xFF, 0xF7, 0xFF, 0x7F,
0xFB, 0xDF, 0xEF, 0xFF, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF7, 0xFF, 0xFB, 0x7F, 0x6D, 0xED,
0xDF, 0xFF, 0xFF, 0xBB, 0xFF, 0x76, 0xEF, 0xFB, 0xF7, 0xFF, 0xDF, 0xFF, 0xDF, 0xFD, 0xFF, 0xFF,
0xFF, 0x7D, 0xBB, 0xFF, 0xFD, 0xFF, 0xFE, 0xEF, 0xDF, 0xEF, 0xFF, 0x6D, 0xFF, 0xD7, 0xF7, 0x6F,
0xF7, 0xF7, 0xFF, 0xDF, 0x77, 0xFF, 0xFB, 0xFF, 0x7E, 0xFD, 0xFF, 0xFF, 0xBB, 0x7F, 0xBF, 0xFB,
0xDF, 0xDF, 0xFE, 0xFD, 0xFF, 0xDD, 0xBF, 0xFF, 0xFF, 0xFF, 0xBB, 0xFE, 0xFF, 0xFE, 0xFB, 0xBF,
0xFD, 0xFF, 0xB7, 0xF7, 0xFF, 0xFF, 0xFF, 0xBB, 0xFF, 0xB7, 0xFF, 0x6F, 0xF7, 0xDB, 0xEE, 0xF6,
0xFF, 0xBD, 0xFF, 0xDF, 0xDD, 0xFF, 0xEE, 0xFF, 0xED, 0xFF, 0xFF, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF,
0xDE, 0xFF, 0xFD, 0xFF, 0xFF, 0xDB, 0xBF, 0xFF, 0x7F, 0xFE, 0xDB, 0xF7, 0xDF, 0xEF, 0x77, 0xB7,
0xFB, 0xF7, 0xB7, 0xFE, 0xF7, 0xFF, 0xFF, 0xED, 0xFF, 0xDF, 0xFF, 0x7F, 0xFB, 0xBD, 0xDE, 0xFE,
0xEF, 0xFE, 0xFF, 0xBB, 0xFF, 0x7F, 0xFB, 0xBF, 0xED, 0xFB, 0xFF, 0xFE, 0xEF, 0xFF, 0xFF, 0xEF,
0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xF6, 0xEF, 0xFF, 0x7F, 0xFF, 0xDB, 0xDB, 0xFE, 0xF7, 0xF7, 0x7D,
0xDE, 0xF7, 0xEE, 0xEF, 0xFD, 0xFF, 0xFF, 0xF5, 0xDF, 0xBF, 0x7F, 0x7F, 0xBF, 0xDE, 0xDD, 0xF7,
0xFB, 0xFE, 0xFF, 0xFE, 0xFF, 0xDF, 0xFE, 0xFE, 0xBD, 0xF7, 0xFF, 0xFF, 0xF7, 0x7F, 0xFF, 0xDF,
0xFF, 0xFF, 0xFB, 0xFB, 0xEF, 0xFF, 0x77, 0xD2, 0xD7, 0xFF, 0xFB, 0xED, 0xFF, 0xFB, 0x77, 0x7F,
0xDF, 0xB7, 0xBF, 0xBF, 0xFE, 0xFB, 0xFF, 0xEA, 0x5F, 0xBE, 0xEF, 0xBF, 0xBB, 0xEF, 0xFF, 0xF6,
0xFB, 0xFE, 0xFE, 0xFF, 0xBB, 0xEF, 0xFE, 0xA9, 0x25, 0xFB, 0xFF, 0xFF, 0xFE, 0xFF, 0xBB, 0xDF,
0xEF, 0x7B, 0xEF, 0xED, 0xFF, 0xFF, 0xBB, 0xD4, 0x96, 0xFF, 0xFE, 0xFB, 0x6F, 0xBB, 0xEF, 0x7D,
0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0x22, 0x53, 0xEF, 0xBB, 0xEF, 0xFF, 0xFE, 0xFF, 0xF7,
0xBD, 0xFF, 0xFB, 0x7F, 0xDD, 0xFD, 0xFD, 0xA9, 0x2A, 0xBF, 0xFF, 0xFF, 0xFB, 0x6F, 0xDD, 0xBF,
0xF7, 0xDE, 0xDF, 0xED, 0xFF, 0xF7, 0xDE, 0x44, 0x95, 0xFD, 0xEF, 0xBD, 0xBF, 0xFF, 0x7F, 0xFD,
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xDF, 0xF5, 0x28, 0x54, 0x5F, 0xBE, 0xFF, 0xF7, 0xF7, 0xF6, 0xDF,
0xDE, 0xF7, 0xF6, 0xFF, 0x7F, 0x7F, 0x7A, 0xA2, 0x13, 0x6F, 0xFF, 0xF7, 0xDE, 0xBD, 0xDF, 0xF7,
0xFF, 0xDE, 0xDF, 0xDB, 0xFF, 0xFF, 0xED, 0x10, 0xA4, 0xBA, 0xFB, 0xFE, 0xFF, 0xFF, 0xFD, 0xDE,
0xF7, 0x7F, 0xFF, 0xFF, 0xDB, 0xFD, 0xB4, 0xA4, 0x12, 0xAF, 0xDF, 0xBF, 0xFB, 0xEE, 0xF7, 0xFF,
0xDF, 0xFD, 0xFB, 0x7E, 0xFF, 0xBF, 0xEA, 0x01, 0x49, 0x35, 0x7F, 0xF7, 0xBF, 0x7F, 0xBF, 0x77,
0xFD, 0xF7, 0xBF, 0xEF, 0xFE, 0xF6, 0xB5, 0x54, 0x04, 0xAF, 0xFD, 0xFE, 0xF7, 0xF7, 0xFB, 0xDD,
0xFF, 0xDF, 0xF7, 0xFF, 0xDF, 0xFF, 0xD4, 0x00, 0xA9, 0x55, 0x5F, 0xBF, 0xFE, 0xDD, 0xDF, 0x7F,
0xDB, 0xFF, 0xFE, 0xF6, 0xFB, 0xFD, 0x75, 0x54, 0x02, 0x2A, 0xEF, 0xF7, 0xDF, 0xFF, 0x7D, 0xFB,
0xFF, 0x7D, 0xBF, 0xDF, 0xFF, 0xBB, 0xA8, 0x00, 0xA8, 0xB5, 0xBD, 0xDE, 0xFB, 0xFF, 0xF7, 0xEF,
0xFF, 0xEF, 0xF7, 0xFF, 0xDE, 0xFD, 0x55, 0x54, 0x02, 0x56, 0xAF, 0xFF, 0xFF, 0x6B, 0xDF, 0x7F,
0xDB, 0xBF, 0xDE, 0xFB, 0x7B, 0xF5, 0x54, 0x01, 0x48, 0xA9, 0x5E, 0xFB, 0xB7, 0xFE, 0xFD, 0xF6,
0xFF, 0xFD, 0xFF, 0xDF, 0xFF, 0xF5, 0x55, 0x54, 0x82, 0x55, 0x57, 0xDF, 0xFE, 0xDF, 0xEF, 0xDF,
0xFD, 0xF7, 0xBB, 0xFF, 0xFF, 0xBA, 0xA4, 0x82, 0xA9, 0x55, 0x5B, 0xFE, 0xFB, 0xFB, 0xBF, 0x7D,
},
};
再以下代码调用 photo[i] 数组 , for (int i = 0; i <= 374; i++),本文所用视频有375帧
所以设置为i <= 374;
void ikun(void){
for (int i = 0; i <= 374; i++) {
ssd1306_DrawBitmap(photo[i],sizeof(photo[i]));
ssd1306_UpdateScreen();
osal_msleep(20); //每一帧延时20ms
}
};
把上面函数调入引用
while(1){
ssd1306_SetCursor(0, 0);
ikun();
ssd1306_Fill(Black);
ssd1306_UpdateScreen();
}
四、效果演示

总结
视频在oled屏幕显示的总体流程就是这样,但如果想实现更长的视频,可能需要对内存大小和视频大小的评估。有任何问题可以评论区留言或私信我。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)