Can I adjust the version of the qrcode I generate?

Dec 4, 2014 at 1:33 AM
Hi,

I am a senior student doing my capstone design. My project needs to display a qrcode on a 2525 LED array. There is a program which can display each pixel of an 1 bit BMP image corresponding to a LED.
So I am trying to generate a 25
25 qrcode without quietzone with your project. I first generate a qrcode with your GraphicsRenderer demo then using bitmap.save to save the MemoryStream into a 25*25 BMP image. But I could only get a distorted version 1 qrcode if the content is short .

Since I cannot find any instruction of how to adjust the version in your documentation, I am wondering if your project has this function?
Coordinator
Dec 4, 2014 at 6:25 PM
Version cannot be adjust, non of qrcode encoder can adjust that. It's depend on the length of your input. You can only specify protection level.

In your case, I will never use any renderer. Just use pure matrix from encoder and render on your own. Origin matrix is without quiet zone.

QrCode documentation is on front page, one thing you can do is append space at end your input, that can boost your input length so that output will e on higher version. But I would highly recommend stick with lower version. Since the smaller the QrCode is, large cell you can have and easier to scan.

If your LED have gap between each other, then you can use space to boost version.
Dec 9, 2014 at 7:40 AM
Edited Dec 9, 2014 at 7:41 AM
Thank you for your prompt and detailed reply.

I took your advice and directly converted the Boolean matrix into an array to be displayed on an LED array. This is much more effective.
Also your suggestion of appending space is very helpful. But this weekend I found a program which can generate a version 10 QR-Code which only contains one character "a". Here is the picture.
Image Do you have any idea of how it does that?

Since you mentioned a smaller QrCode is easier to scan and in practice the resolution is always limited, our team is planning to develop a new two-dimensional code. We hope the size of our code can be limited within 10*10 and we do not need some unnecessary function such as error correction and kanji. I am wondering if your could offer some suggestion?
Coordinator
Dec 9, 2014 at 6:28 PM
I just use zxing decoder to decoded that image. here is result.

40 00 16 10 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11
ec 11

Instead of space, they probably using one of special character to extend your string. When decoder decode it, it will ignore those characters.

QrCode specification is on our front page, you can take look how it define version.

When I say small version of code is better, I mean less cell and each cell's size bigger. That helps scanner to detect at long distance or slightly blend. Without error correction will be a bit tricky, in real world scenario, when you print out, it mean to be damaged over time. High error correction is helpful.

Another thing is when decode, one way of reformat image is turn it to black and white, so when image become blend, very dense and small cell will cause some of single cell disappear.

Currently common scenario to use barcode on mobile is for URL link. Most time if people ask me, I would say minimize url before create QrCode. I mean URL shorten. That way you have less byte to encode, which helps you shrink down size and have some other space for error correction.

Of course limit font to use ASCII will help too instead of Unicode. The goal is to limit input size, so you can use limited information space to include error correction or make code even more smaller.

QrCode have Micro QrCode. You should take look, it only supports limited character. Very effective.
Coordinator
Dec 9, 2014 at 6:39 PM
I think I know how he did it. QrCode specification says when your input string is less than specific version space, fill rest of space with 0 or some other bit.

Why I said it's depend on input string is that we always prefer smaller QrCode than larger. QrCode ISO is pretty much leading that way. A lot of thing we do is make sure input is small and output code have proper makeup (mask).
Dec 11, 2014 at 11:52 PM
I really appreciate your help.
The information you provided must help a lot in our further designing.
My team and I will keep focusing on our project.