It's kinda funny that once we developed this form of communication specifically safe from errors, we went to abuse it's cool anti-error design to put logos in a center of it: basically, these are obstructions not big enough to hurt reading capabilities too much. And now we push it even further to see if it still works while looking nothing like it.
not me. I use a version (qr code size) too big for my data, then generate specific padding in order to manipulate the ecc data to look like a picture.
given a block of data with n bytes of data and m ecc bytes, it can be decomposed into separate blocks each with only one set bit in the data section. Any data +ecc block can be made with a bunch of these vectors xored together. XOR is both the addition/subtraction operator in the galois field (mod 2). So you can decompose your original message, and then xor hovever many single-data-bit vectors to manipulate the pattern as you want, provided that the data bit corresponds to padding. your message won't be corrupted, but you can get some degree of control over padding/ecc data.
I don't know if phones have better apps for it, but the one I use on desktop (which uses ZBar) can't read any of the generated images (even after altering the image with threshold and downscaling).
Not working on an app based on the widely used ZXing library. I saw something else like this recently and that one only had about 50% success. The images and concept are really cool but QR codes ultimately have to be function over form.
Could be CDN compression, though I didn't compress the images in this post for the most part to avoid that. Everything in here was run through qr-verify set to the 32 passes mode.