1. altpersona says:

    When I did mine, I just whited out an area in the middle and started filling black back in.

  2. Willy says:

    That’s neat, Our local newspaper has been putting a QR code in it with a pig in the middle, and was wondering how that still worked.

  3. josh says:

    hopefully this idea catches on and more people/sites/whatever start using it, cause its freakin sweet.

  4. o says:

    Forward error correction at its finest.

  5. Austin Spafford says:

    I hear you on most paint packages lacking decent per-pixel tools!

    For pixel-pushing, my favorite tool has been Paint.NET:

    It also supports C# custom extensions, which has mostly been useful for whipping up custom grid-filters to help align icons. :)

    Thank you for the how-to!

    • Whatnot says: downloads/uses too much crap put out by microsoft, I used to use it but it just became too insane.
      Now I myself use the good old GIMP (also available in a portable version as well as being available on other OS’s than windows)

      But to each his own of course, does have a lot of functionality.

      The familiar MS paint in w7 is also much extended over their old paint btw.

  6. GZ says:

    I use photoshop for per pixel but I zoom way in. My all time fav for per pixel was deluxe paint on the amiga. Great article!

  7. Mark says:

    you’ve covered all the bases there. excellent job

  8. jeicrash says:

    Icon editors work pretty good, they snap to each pixel allowing easy black/white out of each space. Perhaps this will become a new phase for QR codes, re-write the software so the middle is simply ignored and allow for a logo space.

  9. Jay says:

    Long live paint! :D

  10. Darren says:

    jeicrash: I think the point is that the software doesn’t need rewritten for these to work.

  11. MrX says:

    Mm.. This is really neat but won’t it make the QR code less resilient to errors (i.e. waste of data redundancy)?
    Unless I’m wrong, this is the kind of stuff that usually comes out from a designer’s head – more eye candyness, less functionality.

    • mike says:

      yeah, thats what i was thinking
      if you trash half the error recovery data, it will be less likely to recover from errors
      so it will be harder to read the code, meaning you need a better (or more) pictures until it works

      • engunneer says:

        most people leave out the error correction anyway, as many applications don’t require it (labeling things indoors, business cards, or laminated signs), so if you weren’t going to use EC anyway, might as well use it for your logo.

  12. t&p says:

    nothing wrong with M$paint (till they fucked it up in vista and even more in win7).
    It loads fast and very basic for simple editing.

  13. WhatULive4 says:

    For pixel editing try out GraphicsGale. Works great for all types of pixel editing/sprite animation etc.

    • Jordan Gray says:

      I tried using that, but they charge you for it. MSPaint works great (at least, the WinXP version does). It loads instantly (try doing that, PhotoShop!), saves quickly without hassles, and can do really great color erasing (right-clicking with the eraser–still haven’t figured out how to do that with PS). I like PS for its cloning/copying/aliasing capabilities, as well as a lot of plugins, but Paint is great for Pixel art. Sometimes (like when I make OS GUIs) I start with the shapes and color palettes in MSPaint and then work them up in PS. :)

  14. Where was this article when I was playing around with this last night? One other cool thing you can do with the codes is round the edges a bit. I used photoshop’s Filter>Noise>Median at 1px on the graphic I put together and it still scans just fine even with a logo in the middle.

    I put it up on my DA:

  15. Misfitsman805 says:

    Here is a QR Code that I made.

  16. Scott says:

    SWEET, and, yes, Photoshop is terribly overrated. i actually get fair pixel by pixel results in Photophiltre but paint is probably the best I’ve used for such a project.

  17. Decius says:

    @Brian Benchoff

    “and Microsoft Paint (I’ve never seen a program to edit individual pixels that has a better UI, so don’t laugh).”

    MS Paint for per pixel editing FTW!! I wouldn’t laugh, I don’t and can’t photoshop so that’s really all the editing I can do xD

  18. andar_b says:

    Honestly, I’ve used Fireworks and Paint, and others, and I don’t see how anyone can say those alternates are an improvement on Photoshop for pixel work.

    Yes, working with the correct tool is important, but so is knowing how to use a tool correctly. It is very simple to use PS for a pixel editor, you just have to know what you’re doing. For some tasks, though, I prefer Paint Shop Pro 7, but I don’t use it much any more.

    • Spork says:

      I have to agree with your sentiment. Photoshop is a great tool for many different things including per-pixel editing.

      The only valid argument is that paint loads faster and is simpler to learn. While that is important, I don’t think it’s fair to crap on Photoshop in general.

      On QR Codes:
      This is really cool, I have wondered how they work before. Great information to have. Thanks!

      • Michał says:

        Don’t you miss one difference between paint, gimp and photoshop? Is not photoshop a little bit more expensive than the others (I don’t use, I’m not sure)? :) And of course for Linux user the gimp will be the best choice from that trio, that is another difference :)

      • Squidge says:

        Saying photoshop is not ideal for pixel editing and loads slow is hardly crapping on the software lol.

        Thats like trashing a Ferrari for not having a roof rack and brush guard.

  19. Victor says:

    These cookies are for sale in the Netherlands, and are branded with the slogan ‘Spread the love, man’. Their QR code reflects this:

    Has been on the shelves for a year or so, and are REALLY tasty!

  20. Middlerun says:

    Just made one for my site, it worked out pretty well:

  21. Kiwisaft says:

    did this a while ago, and it also works without the left alternating pixel line

    • Nico says:

      Yeah. I also noticed that this pixel line seems not to harm the functionality. Does anybody know if this is intended (in fact this part of the QR code can also be damaged) or an error of the programmers which makes our work easier?

  22. Jack says:

    I created an Android app that let’s you create customized QR codes like this on your phone. Check out

  23. neorazz says:

    some credit for sending in the hackaday logo in color in a qr code would have been nice

    but the explanation on why it works is nice

  24. Hassan Seth says:

    Nice stuff. Now it can be used much like Microsoft Tags.

  25. Eliment says:

    Lol you guys are doing this the hard way… I been adding logos to qr codes for a while and the way I do it is I cut a logo in photoshop then add a 3 pixel stroke to the outside of the logo in white.. Then layer it over the qr code then keep adjusting the size of the logo til the qr code works well..test the code while adjusting the logo size then save it when it works. Simple as that no need to make it hard talking about counting pixels.. My method takes 2 mins after u get the hang of it.

  26. David says:

    Sweet Post! What about making a QR code your Logo??

  27. Craig says:

    The article is only somewhat accurate when it says that you can trash 51 of the byte codewords. After reading the spec: Version 6 codes are broken into 4 main blocks. Each block has 15 data codewords and 28 error correction codewords. Error correction is handled on a per-block basis, and each block can tolerate 14 bad bytes. This allows us to kill up to 52 codewords, but as soon as we kill 15 in any given block the code will be unreadable.

    The good news is that the way the blocks are interleaved, wiping out any contiguous section of the code is likely to destroy all blocks reasonably equally.

  28. If you are looking for designer qr codes for you business check out Kalvin Kleen you can find them at or

  29. supershwa says:

    Been studying bar codes a lot lately, including QR codes. For those who do PHP work, here’s a slick barcode generator (includes EAN, ISBN, QRCode and many more.)

    You’d still have to manually embed your logo – Photoshop is cake (pencil tool – 1px in size; use “[” key to drop the pencil size to 1 px.)

  30. Dazza says:

    NeoReader on the iPhone seems to be unable to read colour QR codes. Annoying. Cool hack, thanks.

  31. elliottcable says:

    For editing single pixels in images, I can definitely suggest Pixen:

  32. Troll_Dragon says:

    Here is one I made for the Step Daughter…

  33. Dan says:

    Whipped up a quick script that lets you embed a square image onto your QR code…check it out

  34. Max says:

    Great article! My Laptop now bears a nice QR code with an embedded Logo

  35. Tenchi says:

    Nice tutorial, thanks :)

    I did a pixel art version of my logo for my QR Code:

  36. Ben Campbell says:

    You obviously need to use my dpaint-style paint program for pixel-wrangling: Evilpixie. It’s Free Software (GPL), and as it’s creator, I’m well placed to offer a perfectly neutral, unbiased opinion: it’s fantastic, and laboratory tests have shown that using it will automatically make you at least 37% hipper and 85.14% more attractive.

  37. Steve says:

    But my logo IS a is a QR code!

  38. Whatnot says:

    Wikipedia has an interesting variation where the logo goes beyond the borders:

  39. Zibri says:

    Much nicer in this way:

  40. Dean Collins says:

    1/ Stop trying to make QR codes look pretty

    2/ If you must do QR code “enhancement” please use Overlay and not embedding. Overlay positions the QR code “within” a logo and builds a surrounding design.

    Want to see some examples of what that means – check out particularly the IronMan2 example from Warbasse design.

    • c3p says:

      1. Yes embedding QR codes is often better.

      2. Especially easy logos are _really nice_ inside a QR Code, like HackADay pixeled or the IBM example.

      there is a reason for both, also fuck error correction, if you don’t need it because your QR is digital, than use it for something else.

  41. Zibri says:

    And even nicer!

  42. tz says:

    I have an example up on harleyhacking of an LCD, and it is easy to do jpegs. I wrote a very compact and fast generator (for the arduino, among other things):

    I did a Javascript port that shows it in html5

  43. tz says:

    One other problem – you really don’t want to change the locators (those square target like areas) too much. If you can directly download an image where the pixels are perfect there won’t be a problem but if you photographs, they need the finders and alignment patterns to figure out where the square boundaries are.

    You can also do things with colors. as long as in monochrome light and dark are distinguishable.

  44. Iananan says:

    Photoshop is fine for per pixel editing if you know what you’re doing. and also, this conversation is stupid.

    here’s a QR I edited yesterday, it has jesus’s face in it.

    • Logan says:

      hmm. I can’t tell if you’re an atheist or if you just thought it’d be ironic.

      I think it is pretty awesome thing to be able to do and I don’t understand why some people think it is stupid. In areas where error correction are unnecessary its pretty cool!

      I’m going to college so I put my face in the middle and added “Call me!” to the top. Geekiest way to give a girl your number, guaranteed.*

      *Not actually guaranteed.

    • Bah says:

      that’s totally cool. I wonder if JC really existed?

  45. I loved this. After I read it I went right out and crafted a logo for my company. We don’t really have a use for it but it’s fun!

  46. MrTaco says:

    Fuck yeah Paint Shop Pro! I still use v5 all the time (7 has some more features, though seems to crash for me more often so I don’t use it much). I grabbed a copy of 9 once since it’s the latest version that still runs on win98, but they ballsed up the interface on it so much, I hate it. But oh well, 5 still gets the job done.

  47. Tiago Maluta says:

    VERY interesting theory. I embedded some logos inside QR-Codes too:

    I think that you can give a better design to visiting cards using this approach.

  48. Michael says:

    I’ve made a .NET library (implemented in C#, .NET 4.0) that can generate these things automatically.
    You just put in the text to encode in the QRCode and a picture you want to embed, and the rest is done by the library.

    Here’s a link to the source code:

    and here’s a couple of examples:

    Ah, almost forgot, this uses code from the Messaging Toolkit project. check it out:

  49. The only trouble is the more you modify the less parity you have in your QR code, meaning it’s more prone to errors. It has really high parity because phone cameras and lighting situations can combine to a really shitty photo; if you wipe out parity with a graphical overlay, people have to take *perfect* snaps of QR codes or it’ll end up corrupted. Not to discourage anyone from having a good time hacking them, just a thing to be aware of that you didn’t really bring up in the article.

  50. modhappy says:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 97,902 other followers