Affichage fichier BMP via un Raspberry pico

Bonjour a tous,

J’ai rencontré un problème d’affichage d’une image sur un écran avec mon pico.

J’ai un écran 320x170 et je souhaite afficher une image. Tout d’abord, j’ai eu une erreur car Pico n’a pas suffisamment de mémoire flash pour afficher toute l’images d’un coup.

Je découpe donc mon image en 2 images, et souhaite les afficher l’une après l’autre. Mais je suis confronté au même problème.

Je pensais que le garbage collector nettoierait la mémoire après la première image mais non…

Comment dois-je proceder ?

import microcontroller
import board
import time
import terminalio
import displayio
import busio
import adafruit_imageload
from adafruit_display_text import label
import adafruit_st7789
import gc

gc.collect()

displayio.release_displays()

tft_cs = board.GP11
tft_dc = board.GP12
tft_res = board.GP13
spi_mosi = board.GP15
spi_clk = board.GP14

width = 320
height = 205

spi = busio.SPI(spi_clk,MOSI=spi_mosi)

display_bus = displayio.FourWire(
    spi, baudrate=48000000,command=tft_dc, chip_select=tft_cs, reset= tft_res
)

display= adafruit_st7789.ST7789(display_bus,
                         width=width, height= height,
                         rowstart=0, colstart=0,rotation=270)

while True: 
    import adafruit_imageload

    image, palette = adafruit_imageload.load(
        "images/interface1.bmp")
    tile_grid = displayio.TileGrid(image, pixel_shader=palette,x = 0, y = 35)
    group = displayio.Group()
    group.append(tile_grid)
    display.root_group = group
    gc.collect
    
    image, palette = adafruit_imageload.load(
        "images/interface2.bmp")
    tile_grid2 = displayio.TileGrid(image, pixel_shader=palette,x = 0, y = 35)
    group2 = displayio.Group()
    group2.append(tile_grid2)
    display.root_group = group2
    
    
#     splash.append(bg_sprite)
#     text_group = displayio.Group(scale=2, x=50, y=120)
#     text = "Hello World!"
#     text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00)
#     text_group.append(text_area)  # Subgroup for text scaling
#     splash.append(text_group)
    time.sleep(25000)

L’erreur :
Traceback (appels les plus récents en dernier) :
Fichier «  », ligne 47, dans
Fichier « adafruit_imageload/init.py », ligne 74, dans load
Fichier « adafruit_imageload/bmp/init.py », ligne 81, dans load
Fichier « adafruit_imageload/bmp/truecolor.py », ligne 98, dans load
MemoryError: l’allocation de mémoire a échoué en allouant 55384 octets