I still find this old project, which tries to embed images in the QR code so that the pixels making up the image are actually part of the code, more impressive (unfortunately the website seems to be gone): https://research.swtch.com/qart
They're "valid" QR codes only in the sense that many QR scanner software only measure a small part of the middle of each square instead of averaging the brightness of the whole square.
That makes sense. Nice trick imo and "valid" enough for me :)
It's okay if it fails for some users as it will work for many.
Maybe makes QR codes a bit more engaging!
I tried this via Binary Eye, a ZXing-based QR reader on my Android phone, and it couldn't read them. The camera app didn't seem to work either. However, the Google search app did work.
While these are still "valid" QR codes, they are certainly less easily readable.
Edit: I tried again in the camera app and it worked, for the pikachu example at least.
I did it differently and incorporate the image into the code pattern itself, instead of having it as the background. It seems to make them more scannable.
My iPhone 12 pro Max, with the latest iOS, picked up all four. The first three fairly easily, the last one I had to keep moving the phone in and out before it showed. That said, none of them kept the link constantly and it was a bit tricky to hold it still enough once it found the link to tap it. (The link was to a YouTube video about QR image codes..)
My iPhone Xs eventually got the green guy to recognize, but not the Pikachu or the little RPG guy or the whatever the other thing is.
This would be a really cool idea if it could be made to work reliably. I like how Twitter did it, they put your avatar in a small circle in the center. That seems to work.
I tried generating a QR code with an image and it didn't work at first, I had to adjust the bit size for it to work. I then tried another image and it required me to have a bigger bit size for the camera phone camera to correctly detect it.
I tend to not have to use (nor generate) qr codes often, but I can picture using this to embed an image that actually describes the data in the code. (E.g. codes to connect to a wifi, maybe having the name of the ap pictured in the code)
Just a guess, but lack of ability to embed it directly into other software without the technical requirement to then make that whole project GPL3. I suspect the OP would be happier with a BSD/MIT/Apache license.
MIT and Apache 2.0, I think. They're both very permissive. You can both use the software as a library or create derivative works without needing to open your source or change your licensing. IANAL, though.