为什么openmv h7 将64编码转图片转不了呀

import sensor, image, time, ubinascii, pyb

初始化摄像头(用于错误时显示备用画面)

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=1000)

Base64编码的64x64像素JPEG图像(示例)

这是一个红色正方形图片的Base64编码

base64_str = (
“/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a”
“HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy”
“MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAQABADASIAAhEB”
“AxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9”
“AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6”
“Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip”
“qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB”
“AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJB”
“UQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RV”
“VldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6”
“wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigD//”
“2Q==”
)

def show_base64_image(b64_str):
try:

1. Base64解码

img_bytes = ubinascii.a2b_base64(b64_str)

    # 2. 创建图像对象
    img = image.Image(img_bytes, copy_to_fb=True)
    
    # 3. 显示图像
    while(True):
        img.copy()  # 刷新显示
        pyb.delay(50)
        
except Exception as e:
    print("Base64图像解码错误:", e)
    return False
return True

主程序

print(“=== Base64图像显示演示 ===”)
print(“红色方块图像尺寸: 64x64 像素”)

尝试显示Base64图像

if not show_base64_image(base64_str):
print(“切换到摄像头视图…”)
while(True):

显示摄像头画面作为备用

sensor.snapshot().draw_string(5, 5, “Base64解码失败!”, color=(255,0,0))

Hi, you need to convert the base64 encoding to a byte array and pass the Image constructor along with the jpeg resolution and pixformat.

jpeg_bytes = binascii.a2b_base64(base64)
img = image.Image(64, 64, image.JPEG, buffer=jpeg_bytes)

This will convert the data. Note that the image object uses the jpeg_bytes as the image data. So, don’t modify that afterwards.

If you pass copy_to_fb=True to the image object then it will copy the jpeg data into the frame buffer.