Convertir imagenes para Arduino con Lcd Image Conveter


Si trabajáis con pantallas TFT, eink, LCD, junto a microprocesadores como Arduino en algún momento tendréis la necesidad de converter una imagen en un array de bytes para poder usarlas

Esto tiene el factor de dificultad adicional de que las pantallas en microprocesadores emplean modelos de color diferentes al habitual RGB888 (24 bits, 16 millones de colores), como RG565 (16 bits, 65 mil colores), RG332 (8 bits, 256 colores) o en escala de grises con distinto número de bits.

Existen muchos programas para realizar la conversión pero, personalmente, el que más me gusta es Lcd Image Converter. Este programa resulta sencillo de emplear a la vez que incorpora todas las funcionalidades que normalmente vamos a necesitar.

LCD Image Converter permite crear una imagen vacía o, más frecuentemente, incorporar una imagen existente para su conversión. Los formatos disponibles incluyen los habituales, como JPG, BMP, GIF, TIFF, PNG, entre otros.

Anuncio:

Podemos exportar la imagen a un array de C mediante el comando File/Converter. El resultado es un fichero que contiene el array junto con una estructura que añade el tamaño y la profundidad de bits para que podamos emplearlo directamente en nuestro programa.

    
    static const uint16_t image_data_myimage[76800] = {
        //... data ....
    };
    
    const tImage myImage = { image_data_myimage, 320, 240, 16};

Por defecto, el programa incorpora perfiles de conversión preconfigurados para modelos de color RGB565, RGB454, escala de grises de 8 y 4 bits, y monocromo.

No obstante, es posible crear cualquier otro patrón de conversión mediante el asistente y las opciones de configuración del programa.

Como consejo, a la hora de exportar la imagen normalmente querréis modificar también el parámetro "Block Size" que corresponden con la agrupación de bytes en el resultado de la exportación, para adaptarlo a las necesidades de vuestra librería gráfica.

Lcd image converter es Open Source y el código está disponible en el repositorio en Github. La página del proyecto (http://www.riuson.com/lcd-image-converter) está fuera de servicio pero el repositorio sigue activo, así como es posible descargarlo desde Sourceforge.

Anuncio:

Previous Making of "ESP32 Deus Ex"
Next Cómo usar OpenCV en .NET con OpenCVSharp