Monday, April 29, 2013

QR Code masking.

Quote from the movie "The mask of Zorro" : He probably wears the mask to hide his bald head and unsightly features.

While in the movie the mask was not to hide the bald head and unsightly features, this is more or less the case when working with mask for QR Codes.

Masking in QR Codes is used to eliminate certain patterns, or unsightly features, in the graphic that could cause scanning problems.

While making a QR Code, the content of the QR Code could generate patterns in the graphics that a scanner could misread as a corner marker. The mask function in a QR Code is to distribute the light and dark elements in such a way that the overall light/dark ratio is close to 50 % and unwanted patterns are mostly eliminated. A generated raw QR Code will 'try on' all eight these mask, and select the specific mask that fits the best.

During designing Custom QR Codes, the routine of selecting the best fit mask could be applied to a QR Code if a graphic is inserted. A graphic pasted in the QR Code will generate errors in the QR Code build-up. By applying the other masks, the mask that generates the least amount of errors can be selected to keep the code useable.

An even better alternative is the method offered by Kangaderoo, recalculate the QR Code content after a picture is inserted, thereby eliminating all the errors inserted by the graphic. Its better to fix the problem then to mask the problem.

Friday, April 26, 2013

Enter the Quiet Zone

From the movie Flash Gordon: "It's a little too quiet around here for me."

The reference to the quiet zone is related to the QR Code build-up. It has nothing to do with the amount of followers of this blog :-)

The quiet zone together with the 3 specific corner patterns make a QR Code recognizable for a 2D bar-code reader application. Other markers in the QR Code are needed for alignment.

This Quiet zone is easier to explain using a inverted picture of a QR Code. As can be seen in the inverted picture, the actual area required for a QR Code is larger and exceeds the area that actually holds the information content.

In order to find the three QR Code locators in the edges a quiet zone is defined. The size of the quiet zone should be 4 elements wide according to the QR Code specification, and it should have the same color as the 'light' elements.

The inverted QR Code is made to highlight the quiet zone, although there are QR Code Reader Apps that can actually scan/read the inverted code, light and dark inversion is not part of the QR Code specification.

Since not all QR Code readers will be able to handle inverted QR Codes it is advised not to use light/dark inverted codes. For this reason the original code is place here as well.

Thursday, April 25, 2013

Putting up a Neon Sign.

From the movie Cocktail: "Cocktails and Dreams....I see it in pink neon. Blink, blink, pinkety blink."

Not blinking like the QR Code in my previous post, but a nice example of a neon light look.

Tuesday, April 23, 2013

Time for a real dynamic QR Code.

From the movie Back to the Future:
"Wait a minute, Doc. Ah... Are you telling me that you built a time machine... out of a DeLorean?"

This QR Code is not really a DeLorean, but it is a time machine. It seems to be stuck in time.

My blog entry of March 3th explains in detail what a dynamic QR Code is.

Since QR Codes are usually on printed material, this fun example of a real dynamic QR Code only works on a computer.

Using the animated GIF, this code is a slide show of 15 frames with a one second interval. Each frame is a valid QR Code by itself where the link in the QR Code is the same for each frame.

For more funny an customized QR Codes, please visit my site.

Saturday, April 20, 2013

I'll be back ?

"I'll be back"

Not a phrase you want to hear from a terminator.

It is however the goal you want from all the work that you put into your website, facebook, twitter, blogs, etc.

How do visitor come back?

There is a simple method to find out.... ask 

Ask what you visitor want to see, if what you are offering is interesting, what they like, what they don't like, how they think the experience can be improved.

 I hope to get a lot of suggestions in the comment box.

Friday, April 19, 2013

Using Colors in QR Codes, Part II

One of the most famous quotes from the action/science fiction movie The Matrix:

"This is a sparring program, similar to the programmed reality of the Matrix. It has the same basic rules, rules like gravity. What you must learn is that these rules are no different than the rules of a computer system. Some of them can be bent. Others can be broken. "

The same applies to enhancing QR Code, there is a clear set of rules that are part of the ISO/IEC 18004 QR Code documentation. These rules describe exactly how the QR code should be set-up. On the other hand, if limits of rules are not testes, bended or broken, progress and invention would halt.

The usage of color in QR Codes can result in unwanted behavior. Since color usage is not endorsed (read K.2.2 Symbol Contrast in the ISO/IEC 18004 specification), the way colorful QR codes are handled by a QR reader app can differ.

Here is a nice example of a (non?) working QR Code, depending on the reader used. for this example I started with a nice black/white QR Code. and changed both the white and the black to a nice color pattern.
The next step was to check/modify each element of the QR Code to check if the equivalent gray value was in the 0-25% of in the75-100% range of a gray scale to enhance the light/dark contrast to 'acceptable' levels.

The scan results of this code with multiple readers on various pads and phones was not constant. why? Because the QR code standard doesn't include multicolored images. Since there is no standard of going from this colorful pattern to black and white, various methods can result in different results.

Method 1: Threshold

Using a graphic drawing program, and just applying the threshold function gives me the following result. It is clear that this picture is beyond scanning valid QR Code
Method 2: Gray Scale and Threshold 

Using the same program, but now in a two step approach to change the color to black and white, the first step a convert to gray scale, followed by a threshold function gives this second result.

Does this mean not to use colors in QR Codes? well, maybe..... If a QR code needs to be made for a commercial campaign, there is no way to know what reader app each individual uses on there mobile phone.
And your custom QR Code should not be a piece of useless art.

Besides that the QR Code needs to be appealing, going to a mobile friendly website when an URL is used, it should actually work!!

If you require a (colorful) Custom QR Code, with branding or other visual effects, don't hesitate to contact me or visit my website, together we can work on a solution that will still use the original rules as its guide.

Saturday, April 13, 2013

Playing with the Error correction.

There are several 2D bar-codes that make use of the Reed Solomon (RS) error correction. 

Each byte of a message is run through the algorithm, generating a RS code word.This code word is then added to the message.


The selected Reed Solomon code word is 9 Bytes. 
The message is a array containing = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
Converted to ASCII values = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100] 
And running this through RS generator gives a total of 11 + 9 bytes:

[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100], [145, 124, 96, 105, 94, 31, 179, 149, 163]

With these settings up to 4 byte errors in the message and/or RS code word can be corrected.

Suppose the message was corrupted during transmission and at the receiving end would be decodes as
[104, 101, 108, 108, 111, 32, 101, 97, 114, 116, 104] ,[145, 124, 96, 105, 94, 31, 179, 149, 163]
Uncorrected the message would read as: ['h', 'e', 'l', 'l', 'o', ' ', 'e', 'a', 'r', 't', 'h']
The RS decoding algorithm returns the following information:
[[10, 12], [9, 24], [7, 14], [6, 18]]
Byte 10 needs a XOR of 12
Byte 9 needs a XOR of 24, etc

Errors in a QR Code generated by graphical enhancement are corrected in this way.

Why is this information so interesting?

In QR Codes the message part is not filled most of the time.
Suppose the message is just "hello", In a QR Code the number of reserved spaces for a message is fixed, in this example this means that there are always 11 bytes reserved for the message.
The message is a array would be = ['h', 'e', 'l', 'l', 'o', '*', '*', '*', '*', '*', '*']

The (*) parts of the message is filled by a padding pattern as described in the specification of the QR Code.

Using this information in a QR Code:

The picture illustrates a typical QR Code:
  • The gray section is to identify a QR Code.
  • The green is the used message area.
  • The black is the unused (padded) message area.
  • The red is the error correction information.
When QR is graphically enhanced in the black area, the inserted graphic will generate a modification in the part of the message that is padded. Of this new message a new RS code word can be calculated, resulting a in graphically enhanced and error free QR Code.

If you require a fast scanning, error free  graphically enhanced QR Code, don't hesitate to contact me or visit my site to see more examples of what is possible with QR Codes.

Thursday, April 11, 2013

Fun: 2D Code Hybrid.

You probably need to be a geek just like me  to appreciate this.
This 2D code is a hybrid between QR and Aztec.

With a 2D code reader the whole picture will be read as a QR Code. When zoomed in so the QR markers are not recognized by the reader, a Aztec 2D code will be read.

Tuesday, April 9, 2013

Why Aztec 2D Code?

A Couple of weeks ago I already posted about the existence of the Aztec 2D Code. The displayed picture shows an example of the Aztec 2D Code.

I've seen this 2D pop-up several times over the past weeks, and a quick Wikipedia search shows it is the primary choice as a 2D bar-code for the travel sector.

Basically this code can perform the same as the QR Code, datamatrix,, or other 2D bar codes. The way the location marker(s) are placed and how the data is build up differ between various 2D codes.

And most of the 2D barcodes make use of Reed-Solomon error correction, with selectable grades of redundancy.

What makes the Aztec code special is that is supports all kind of characters. The message encode system can handle special characters, that might be part of anyone's name, besides the standard ASCII character set. This special feature makes Aztec code specially suitable for airline and other ticketing supporting companies, that require to place a persons name in the 2D code.

So if your name is "Владимир Путин", and you are president of Russia.. :-) The name can still be placed in a 2D Bar-Code on a boarding pass. Try to get that one in a QR Code :-)

Time for graphically enhanced Custom Aztec Codes? 

Sunday, April 7, 2013

Mobile website

I conducted some more investigation into mobile used of the internet.
Following my blog entry from earlier this week about qr code landing page.

The trend to use the mobile phone a primary instrument for internet usage seems to increase over the years, where the estimation is that mobile usage will surpass the normal desktop internet usage somewhere in 2014/2015.

Looking around everyone seems to be constantly playing with their mobile phones. The social media giants like Facebook and Twitter made sure that they already supported access to their services via a mobile app.

Not having a mobile (friendly) landing page is one of the worst mistakes made with QR Code usage, but when this trend of mobile usage surpassing desktop usage is being realized, having a mobile website will become a must.

Since QR Codes usages matches pretty well with mobile website, I would think that QR Codes still have a long and successful life to live....... but I have been proven wrong on several occasions :-).

Friday, April 5, 2013


I don't know if you have ever downloaded something that was labeled free.
Apps for mobile phones, music, software......
Free always seems to come with its own constraint.

At the moment I'm thinking about a free QR Code service. And here is the constraint......
A free Custom QR Code, but the link in the code will be routed through and advertizment page.
I selected "" as service for this particular trial. They offer both URL shortening and advertizement in a single service. For more information about AdFly click Here

Here is the code in question. A nice call-to-action in the middle of the QR Code, using the magic "Free" word. Op-on scanning, or clicking on the actual graphic for the desktop users, you will see a nice advertizement for 5 seconds before being forwarded to my website.

What would you prefer when using a QR Code, a "Free" code and live with the constraints? Or pay for the service and have a product that is not hijacked? And ask yourself what your potential clients expect when they scan a QR Code that is linked to your bussiness...

Let me know what you think, free (with constraint) service..... yes or no....

Wednesday, April 3, 2013

QR Code Landing Page

In the world of advertisement I still see a lot of QR Code being rerouted landing site's or webpages that are developed for desktop use only. I even thought I could get away with a desktop based website, since I try to promote QR Codes themselves, and not the back-end services behind the QR Codes. Boy was I wrong.

On my site I use Google analytic to observe visitor behavior. Last weekend one of my articles was published on This site being a bit more popular en better visited than my site or blog generated a nice and wanted spike in the visitors.
But not only the visitor count but also the bounce rate increased. The bounce rate being the number of visitors not going past the first page visited. And visitors not going past the first page will not transform in potential clients!
With Google analytics I could see that 80% of my (new) visitors were using a mobile device, and the bounce rate of the mobile visitors was close to 100%.
Sure, on a modern mobile device you can zoom in on a webpage to make it readable, but that's the same as reading a desktop site with a magnifying glass. Do-able, but very annoying, making visiting the site itself annoying, making the product you promote annoying.

I've been reworking my website the last couple of day's to include mobile device support. It is still work in progress, but the current result is already that much better than the default desktop view on a mobile that I made it active.

I have two tips for anyone planning to use a QR Code.
  • If your QR Code needs to contain an URL, make sure you have a mobile landing page!
  • If you want to brand you QR Code with a graphic, visit my (mobile) page at to see what is graphically possible with QR Codes.