系列文章目录



前言

在之前的几篇文章中,已经实现了图片、简单动图、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屏幕显示的总体流程就是这样,但如果想实现更长的视频,可能需要对内存大小和视频大小的评估。有任何问题可以评论区留言或私信我。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐