14 points

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.

permalink
report
reply
5 points

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.

permalink
report
parent
reply
2 points

I feel like I lack IQ to understand that. Do you have some learning materials at hand to explain it?

permalink
report
parent
reply
4 points

I originally learned the technique from here

permalink
report
parent
reply
4 points
*

They are talking about a creative way to manipulate QR codes so they can have a custom design, like an image or logo, without corrupting the data they contain.

QR codes come in different sizes. By choosing a size larger than necessary for their data, there is extra space left over, called “padding.” “ECC” stands for Error Correction Code. QR codes have built-in error correction which allows them to be read even if they’re damaged or partially obscured. They are suggesting they can manipulate this ECC data, along with the padding, to make the QR code look a certain way, like having a picture in it. Think of a QR code’s data as a collection of tiny boxes, each box being a “bit” that can be either on (1) or off (0). They are talking about breaking down this data into separate groups where only one box is turned on in each group. Without diving deep into mathematics, XOR is a simple way to combine two sets of data (exclusive or). It’s a fundamental operation in digital electronics and math. In this context, it’s used to mix the original QR code data with the custom design data. By using the XOR operation, they can combine the original QR code data with their custom design data without corrupting the original message. So as long as they’re only manipulating the extra space (padding) and not the original data, the QR code’s message remains intact.

TL;DR: They found a way to add custom designs to QR codes without messing up the information they contain. They do this by manipulating the extra space and error correction data in larger QR codes. It’s a bit like doodling in the margins of a notebook page without writing over the original notes.

permalink
report
parent
reply
8 points

Works fine with iPhones built-in reader. This is pretty cool.

permalink
report
reply
7 points

Super cool. Reminds me of The Witness.

permalink
report
reply
2 points

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).

permalink
report
reply
7 points

Worked with Google lens

permalink
report
parent
reply
3 points

That’s server-side though. (I tried it on my phone, it won’t scan if you don’t have internet)

permalink
report
parent
reply
2 points

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.

permalink
report
reply
1 point

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.

permalink
report
parent
reply

AI Art & Image Generation

!ai_art@lemmy.world

Create post

A place to share images and art generated by artificial intelligence and similar tools.

Rules:

  • All posts must be relevant to image generation with artificial intelligence.

  • Please include the name of the AI or tool used to generate your image at beginning of your post to promote searchability. Example: “[Midjourney] Picture of a lake.”

  • It’s not required, but we encourage you to include the prompt used to generate the image in the description of your post.

  • To avoid spam, please try to limit yourself to five posts a day. Feel free to add as many images to your posts as you’d like.

  • Please keep NSFW content to a minimum. Risque content is allowed, but pornographic AI art is not. There are plenty of other places to share that. Posts not flagged as NSFW will result in a temporary ban.

  • Do not self promote your AI tools you created without mod permission. Also any other post about AI tools that seem sketchy will be removed and the user banned at the moderators discretion. Please report a post if you think it should fall in line with breaking this rule.

  • Please be nice to your fellow users and make sure to follow Lemmy World’s rules of conduct: https://mastodon.world/about

Recommended Communities:

Community stats

  • 54

    Monthly active users

  • 587

    Posts

  • 1.3K

    Comments

Community moderators