Images can take much memory that might lead to performance and stability issues depending on your hardware. LVGL’s general idea is drawing widgets dynamically and there are many customization options that you lose if you use images in place of built-in widgets. Some more complex or larger widgets might take more CPU power to be rendered, especially when some alpha-blending/opacity kicks in, they should be used wisely. Images are usually only used in cases when a widget can’t be customized to look exactly the same as you imagine. But the optimal design-decision depends on your design and hardware after all, YMMV.