79°F

Aaron Parecki

  • Articles
  • Notes
  • Photos
  • Fun with QR Codes

    October 5, 2015

    It's a little known fact that QR codes are actually quite tolerant of errors and missing pixels, so much so that you can completely cover up a bunch of them with junk and the code still scans fine. This is the principle behind the site I made, vanity-qrcode.com, which allows people to create QR codes with text overlaid on them.

    The site takes whatever text you type, uses a pixel font I adapted, and places the text with 1px white outline in the middle of the QR code. There's usually enough error correction in the code that the text won't prevent the code from being scanned.

    There is, however, a much fancier way of embedding text or pictures in QR codes, that doesn't rely on the built-in error correction. There is a great post by Russ Cox that explains this in great detail. The short version is you give it a URL and a high-contrast photo, and it adds a carefully chosen set of digits to the end of the URL where the digits chosen end up representing the photo. You can try it out here.

    I tried this out with my avatar, it took a few tries to get a result that looked any good. I had to drastically increase the contrast of my photo for starters.

    I was then able to upload the high-contrast version to the website and use the tools to adjust the position and size of my photo relative to the QR code boundary. After a little fiddling, I got this result:

    It's close, but I wasn't super happy with the result. I figured I'd open it up in Photoshop and add a few more pixels to help define my mouth and jawbone a little more. The end result is below, which only introduces a few errors but still scans just fine!


    Mon, Oct 5, 2015 6:04pm -07:00 #qrcode
    20 likes 8 replies 4 mentions
    • Ankur Naik
    • Valentina Bettencourt
    • Tajĉjo Verdulo
    • Amalia Parecki
    • Danielle Alexander
    • Antonio Bettencourt
    • Colin Williams
    • Shashi Jain
    • Joel Gibby
    • Alejandro Kamochillo
    • Joschi Kuphal
    • Cheryl Crowe
    • Joël Franusic
    • Leif Warner
    • Brian Pagán
    • Heather C. Johnson
    • Mike Merrill
    • Daren Sabin
    • Alex Kawas
    • Josh Highland
    • Valentina Bettencourt www.facebook.com/10152051745921984
      Very cool!
      Wed, Oct 7, 2015 4:52pm +00:00 (via brid-gy.appspot.com)
    • Amalia Parecki www.facebook.com/10152149262524635
      Amazing resemblance!
      Wed, Oct 7, 2015 5:00am +00:00 (via brid-gy.appspot.com)
    • Daren Sabin www.facebook.com/10205470336898514
      Remember that one time you drew a bar code by hand that when scanned was that girls name... That was awesome~
      Tue, Oct 6, 2015 2:05pm +00:00 (via brid-gy.appspot.com)
    • Mike Richmond www.facebook.com/10153076750621804
      Very clever!
      Tue, Oct 6, 2015 12:59pm +00:00 (via brid-gy.appspot.com)
    • Nagisa Day www.facebook.com/10152689449892424
      Dude.
      Tue, Oct 6, 2015 12:16pm +00:00 (via brid-gy.appspot.com)
    • Joël Franusic www.facebook.com/10151962278956927
      Awesome! I've wanted to make a wall-sized QR code where the individual "pixels" are also QR codes. The goal would be to make large QR code scannable from afar, have it be text for something like "Earth", and have the pixels scan to things like "trees", "raccoons", "mountains", etc
      Tue, Oct 6, 2015 6:14am +00:00 (via brid-gy.appspot.com)
    • Joschi Kuphal www.facebook.com/100003040678433
      Nice ones! (The generator and this QR code)
      Tue, Oct 6, 2015 5:36am +00:00 (via brid-gy.appspot.com)
    • Aaron Parecki www.facebook.com/11500459
      http://aaronparecki.com/articles/2015/10/05/1/fun-with-qr-codes
      Tue, Oct 6, 2015 5:20am +00:00 (via brid-gy.appspot.com)

    Other Mentions

    • ✨ Case ✨ 🏴‍☠️ twitter.com/caseorganic
      Here's a beautiful visualization and breakdown about how QR Codes work! Thanks for the link @gndclouds! Reminded of the really awesome QR code generator @aaronpk made - also check up this little writeup for more details: aaronparecki.com/2015/10/05/12/…
      Wed, Sep 14, 2022 6:32pm +00:00 (via brid.gy)
    • Aaron Parecki aaronparecki.com
      🔴 LIVE Q&A! Answering your questions about livestreaming, Owncast, and the ATEM Mini!
      Sun, Jan 16, 2022 11:46am -08:00
    • brandonrozek.com
      Playing with QR Codes
      Mon, Dec 21, 2015 5:00pm -07:00
    • brandonrozek.com
      Playing with QR Codes
      Mon, Dec 21, 2015 5:00pm -07:00
Posted in /articles using quill.p3k.io

Hi, I'm Aaron Parecki, Director of Identity Standards at Okta, and co-founder of IndieWebCamp. I maintain oauth.net, write and consult about OAuth, and participate in the OAuth Working Group at the IETF. I also help people learn about video production and livestreaming. (detailed bio)

I've been tracking my location since 2008 and I wrote 100 songs in 100 days. I've spoken at conferences around the world about owning your data, OAuth, quantified self, and explained why R is a vowel. Read more.

  • Director of Identity Standards at Okta
  • IndieWebCamp Founder
  • OAuth WG Editor
  • OpenID Board Member

  • 🎥 YouTube Tutorials and Reviews
  • 🏠 We're building a triplex!
  • ⭐️ Life Stack
  • ⚙️ Home Automation
  • All
  • Articles
  • Bookmarks
  • Notes
  • Photos
  • Replies
  • Reviews
  • Trips
  • Videos
  • Contact
© 1999-2025 by Aaron Parecki. Powered by p3k. This site supports Webmention.
Except where otherwise noted, text content on this site is licensed under a Creative Commons Attribution 3.0 License.
IndieWebCamp Microformats Webmention W3C HTML5 Creative Commons
WeChat ID
aaronpk_tv