Re: QR-Code level 1 density

Skip to first unread message

Sean Owen

Aug 20, 2012, 7:00:27 AM8/20/12
The generator actually delegates to the Google Chart server for encoding; it doesn't do any encoding itself. The QR code encoder in the Chart Server is pretty old, and don't know if it has been updated since even I was there in 2007. The implementation was quite good, and forms the basis for the Java-based encoder in this project. However I know that we have along the way fixed a few issues related to choosing the right version in border cases like this.

I can't fix the Chart Server, but can make sure the Java-based encoder works. I tested a 24-character URL like HTTP://ABC.COM/123/456/7 and it yields version 1. So yes I have fixed something along the way. But, a 25-character URL like HTTP://ABC.COM/123/456/78 still yields version 2, which is wrong. Looking closer I think I see a smaller error I can fix so that it would choose version 1.

So your options are to use another encoder or use the Java-based encoder (can run it on the command line easily) here, after I fix it up today.

Lachezar Dobrev

Aug 20, 2012, 8:13:16 AM8/20/12
to Bernardo,
You might want to try Data Matrix.
The density is higher (less non-data content, smaller quiet zone) at
smaller sizes, but reading is substantially harder. However when the
space is a real premium (like embedding into existing labels) it might
pay off.
For our application I ended up choosing Data Matrix over QR Code,
due to the very limited 1x1 cm zone I needed to squeeze the code into.
This allowed to replace the 29x29 QR Code (21x21 +4,4,4,4 for quiet
zone) with an 18x18 Data Matrix (16x16 +1,1,1,1 for quiet zone). That
allowed the dots to be substantially bigger, which effectively made
reading easier even with really poor fixed-focus cameras.

The good thing about the ZXing Bar-code Scanner is that it behaves
the same way when reading URL (or any other content for that matter)
from either QR Code, or Data Matrix.

Found this on the net, that might help you:

2012/8/20 Bernardo <>:
> Hi,
> I am trying to use QR codes in very limited spaces to place website URLs.
> With some tests, level 1 code works great but level 2 not so much with many
> cameras.
> Seeing the specs at it should be
> possible to place up to 25 alphanumeric chars with Level 1 density, but the
> zxing generator (
> seems to allow only 23 of these chars.
> I only use the chars in this set: 0-9, A-Z [upper-case only], space, ., /, :
> Is it possible to use the other 2 chars? Just the "HTTP://" part eats 7
> chars but with 25 I can encode an identifier long enough.
> I found this bug report about the same issue, but with numeric chars:
> Thanks,
> Bernardo
> --


Aug 20, 2012, 11:50:25 AM8/20/12
Hi Sean, I was really thinking about using a command line version, but I thought this web generator was the same one used in the project.
Nice to know it will be possible to use the 25 chars from the specs!

Reply all
Reply to author
0 new messages