A simple and lightweight QR code generator.
The quiet zone is the light border around the symbol, and it is also the white space inside a frame. The specification asks for 4 modules, though a framed code decodes reliably with 1 or 2, which is what framed codes in the wild tend to use.
The band is drawn outside the quiet zone, so the image grows rather than the light border being painted over. Set the width to zero for no frame.
A logo works only because the error correction can rebuild the modules it hides, so a small symbol at level L or M has no room for one. Raise the error correction level to make space.