Vai a contribuição de um Analista de sistemas... Gere o QRCode em JPG ou JPEG se for tem a disponibilidade de usra em smartphone. Pois, o PNG tem fundo invisível e se o smartphone estiver em modo dark as leitoras de QRCode não conseguem ler, pois veem tudo preto.
Não é uma contribuição de código, mas uma de melhoria já, baseada em caso de uso.