Códigos de barras existen muchos y sus usos son diferentes. Los 2D como el QR destacan por poder incorporar todo tipo de información
(Textos, URLs, datos de móviles, pagos, conección de WI-Fi, etc.).
La popularidad de Java hace que exitan multitud de librerías de código libre, pensadas para estos trabajos especiales.
En este
CODIGO incluí dos ejemplos. El primero genera un QR limpio sin extras con texto superior e inferior.
El segundo permite el agregado de una grafica central en formato .PNG con fondo transparente.
En ambos casos la lectura de la gráfica con el QR fue probada con 'Google Lens' de mi celular, y en ambos casos fue reconocido el mensaje del QR.