Barcode

Barcode generation with LVGL. Uses code128 by fhunleth.

Usage

Enable LV_USE_BARCODE in lv_conf.h.

Use lv_barcode_create() to create a barcode object, and use lv_barcode_update() to generate a barcode.

Call lv_barcode_set_scale() or lv_barcode_set_dark / light_color() to adjust scaling and color, call lv_barcode_set_direction() will set direction to display, and call lv_barcode_update() again to regenerate the barcode.

Notes

  • It is best not to manually set the width of the barcode, because when the width of the object is lower than the width of the barcode, the display will be incomplete due to truncation.

  • The scale adjustment can only be an integer multiple, for example, lv_barcode_set_scale(barcode, 2) means 2x scaling.

  • The direction adjustment can be LV_DIR_HOR or LV_DIR_VER

Example

Create a Barcode

#include "../../lv_examples.h"
#if LV_USE_BARCODE && LV_BUILD_EXAMPLES

/**
 * Create a Barcode
 */
void lv_example_barcode_1(void)
{
    lv_color_t bg_color = lv_palette_lighten(LV_PALETTE_LIGHT_BLUE, 5);
    lv_color_t fg_color = lv_palette_darken(LV_PALETTE_BLUE, 4);

    lv_obj_t * barcode = lv_barcode_create(lv_screen_active());
    lv_obj_set_height(barcode, 50);
    lv_obj_center(barcode);

    /*Set color*/
    lv_barcode_set_dark_color(barcode, fg_color);
    lv_barcode_set_light_color(barcode, bg_color);

    /*Add a border with bg_color*/
    lv_obj_set_style_border_color(barcode, bg_color, 0);
    lv_obj_set_style_border_width(barcode, 5, 0);

    /*Set data*/
    lv_barcode_update(barcode, "https://lvgl.io");
}

#endif
#!/opt/bin/lv_micropython -i
import lvgl as lv
import display_driver

bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)

barcode = lv.barcode(lv.screen_active())
barcode.set_height(50)
barcode.center()

# Set color
barcode.set_dark_color(fg_color)
barcode.set_light_color(bg_color)

# Add a border with bg_color
barcode.set_style_border_color(bg_color, 0)
barcode.set_style_border_width(5, 0)

# Set data
barcode.update("https://lvgl.io")

API

code128.h