На изменении яркости
В одномерном штрихкоде каждая цифра закодирована двумя темными полосками разной ширины. Тонкие двойные линии по краям и в середине служат для калибровки сканера. Сканер измеряет, как меняется яркость отраженного света, если двигаться поперек полос.
По ширине темных полос определяются цифры, составляющие код продукта в базе данных магазина. Более сложные (двумерные) штрихкоды, например QR-коды, состоят из черных и белых клеток. При этом вместо сканера используется цифровая камера, которая передает изображение программе распознавания образов. Каждая клетка кодирует один бит информации, и один код может нести до полстраницы текста.