In this paper, we propose an automatic algorithm to generate halftone QR codes at controllable level of readability. Our approach largely looses the binding between the QR code and halftone image, thus results in high quality visual QR codes which are resistant to the variation of QR codes.