This page is an online two dimensional code generator which is written in PHP. It can generate QR Code, Data Matrix, Aztec Code and Micro QR Code.
Using the form on this page, you can create two dimensional code images that trigger various actions on the scanner device. Don’t forget to install Qrafter or Qrafter Pro (why two versions?) to scan and generate QR Codes if you have an iPhone or iPad. So far, this page created 4,995,042 codes since I started counting in January, 2010.
Please be sure to read the Notes and FAQ sections below before requesting help in the comments if you encounter any problems with code generation (Especially for Micro QR Codes or backslash characters you may encounter on some codes!).
This page is very popular and because of that, it gets an incredible amount of comment spam. Sometimes legitimate comments can get caught as spam and I can miss them, so if your comment does not appear after some time, you can contact me from the email address on my contact page.
READ THIS FIRST:
I am getting many questions about scanning the codes created on this generator. Most of them are about some problem with the scanner not detecting the content of the code properly. This generator follows established standards strictly and most scanner apps except Qrafter and Qrafter Pro for iOS don’t follow those standards completely. So, if you somehow end up with an unexpected result after scanning a code, it is because that your scanner was developed lousily. If you are on iOS, use Qrafter or Qrafter Pro for guaranteed standards compatibility. For other platforms, please contact the developers of your scanner app to tell them to start following the standards that were established for a reason.
Notes:
You can follow me or Qrafter on Twitter.
QR Code is far more widespread than Data Matrix, Aztec Code or Micro QR Code. Actually Micro QR Code is rarely used and is only given here as a technology preview. If you want to create a campaign for your products using a 2D Code, make sure that you are using QR Codes, not the other types.
Data Matrix and Aztec Code have significantly lower capacity (4096 alphanumeric characters for QR Code, 3067 for Aztec Code and 2335 for Data Matrix), so if you would like to encode a lot of text, select QR Code.
To create the best readable code for long URLs, use one of the URL shortening services so that the resulting code is as small as possible. I personally prefer bit.ly over the others.
Micro QR Code cannot hold more than 35 numeric and 21 uppercase alphanumeric characters, and it can hold even less characters when you use lowercase characters. When encoding a URL into a Micro QR Code, try using all uppercase characters for longer URLs. I don’t know of a scanner that supports Micro QR Code though.
If your input cannot be encoded, the generator will give a warning. In that case, lower the character count in your input and try again.
If your device cannot interpret the encoded 2D Code properly, it probably means your scanner program is written poorly or does not have the capability of decoding that particular code format; or your device does not accept that action, because all codes created by this script and the content within them are compliant to all necessary published standards (vCard standards, URL encoding schemes, NTT DoCoMo standards, etc.).
While we are talking on standards, let me open the topic up a little bit more. Sadly most scanners out there do not follow special character escaping standards. Characters like “:” or “;” are special characters in vCard, meCard or vEvent specifications, and they should be properly escaped for the input to be interpreted correctly. This generator follows these standards correctly, and so a URL field like “http://example.com” becomes “http\://example.com” after escaping. The problem is, some scanners do not know how to handle this escaped character and break altogether. If you encounter such problem, select No for Escape Special Characters in vCard, meCard or vEvent creation. But while you will be able to read those QR Codes in broken scanners, be aware that, your 2D Code will not be standards compliant and you may not be able to add a URL that includes a second colon (for example as a port number separator) or semicolon when you do that. If you are on iPhone or iPad, I strongly suggest that you ditch your broken scanner and download Qrafter or Qrafter Pro. They are fully compliant to said standards. This way, I hope that developers will be forced to create scanners that obey standards that were established for a reason.
Data Matrix, Aztec Code and Micro QR Code do not support characters other than ASCII because of their spec, so if your input has international characters, always use QR Code. Another caveat of Micro QR Code is that, it is not supported by most of the scanner programs out there. As for Kanji and Cyrillic characters, again, only QR Code should support them.
Always use dark colors for foreground color and light colors for background color. If there is not enough contrast between foreground and background colors, your device will most probably fail to decode the code. Another warning: The EPS version I had to use does not support transparency, so you should use another format if you are going to have transparent foreground or background in your codes.
Twitter Profile Image Overlay option overlays your Twitter profile image onto a code that includes your Twitter profile URL. Images created with this option will behave very oddly with vector image formats. You have been warned! 🙂
Currently you can do the following actions with 2D codes generated with this form:
- You can browse to a website.
- You can bookmark a website.
- You can make a phone call.
- You can send a short message.
- You can send an e-mail.
- You can create a vCard (v2.1 or v3.0) with coordinates to add a contact to your device.
- You can create a meCard to add a contact to your device.
- You can create a vCalendar event to add to your calendar.
- You can create iTunes app and review URLs for iOS devices.
- You can create
market://
URLs for searching for publishers or packages on Market app for Android. - You can create Foursquare venue URLs.
- You can create special
youtube://
URLs for YouTube app on iOS. - You can fetch and encode the latest tweet of a Twitter user.
- You can overlay a Twitter profile image over the code.
- You can create a mobile URL to tweet on Twitter.
- You can connect to a WIFI network on Android devices.
- You can read plain or free formatted text on your device.
You can change the block size of the generated image to make it bigger or smaller. Also, you can change the margin size of the image to add more quiet zone if your decoder cannot decode it (Especially Data Matrix seems to need bigger margin sizes). Error correction level for QR Code (ignored for other code types) can be set to 4 different values and higher values may cause the image to be decoded slightly slower. The 4 values can be explained like this:
- Low (L): Up to 7% of errors can be corrected.
- Medium-Low (M): Up to 15% of errors can be corrected.
- Medium-High (Q): Up to 25% of errors can be corrected.
- High (H): Up to 30% of errors can be corrected.
You can choose PNG, PDF, SVG or EPS outputs. SVG will output a vector image XML file, and you can edit it in applications like Adobe Illustrator or Inkscape.
Please be aware that while I make checks for illegal characters to protect my server, I do not check your input for a meaningful value.
The image generation is done using third party encoders. I have only written a handy PHP front end that formats your input and passes it to these encoders.
A note about printing from Roy, a fellow user of this generator: When codes are generated, they are created in RGB (my note: yes even if they are black and white, they are in RGB colorspace) and if they are used in printing, they should be converted to grayscale or CMYK so that, when printed, only the black plate is used. This ensures the highest edge resolution, particularly in smaller sizes.
QR Code Scanners:
The best scanner apps for iPhone and iPad are Qrafter and Qrafter Pro. They are available on the App Store. They are designed for both iPhone and iPad and Qrafter is free with advertisements, while Qrafter Pro is paid with no advertisements. They are able to understand all actions on this generator (and more) and are the most advanced scanners for QR Codes on iPhone and iPad.
For Android, the best option seems to be the Barcode Scanner app from ZXing.
For Nokia Maemo/Meego, you can use Mbarcode according to Ryks, another commenter.
For other devices, you may find one, suitable for your device from Kaywa or QuickMark.
QR Code is a registered trademark of DENSO WAVE INCORPORATED in the United States and other countries.
Qrafter is a registered trademark of Kerem Erkan in the United States, European Union and other countries.
FAQ:
Here is an updating list of frequently asked questions.
Q: Can I change the content of a code I created if I find a mistake?
A: The codes generated on this generator are standalone, which means they have no connection to this generator after being generated. This also means they include the content directly inside them, and if the content needs to change, the generated code image will change. Please test your code images with as many devices and scanner apps as possible to avoid any problems after printing the codes.
Q: Why do I get unwanted characters like a backslash (\) or semicolon (;) in the result when I scan a QR Code?
A: You are using a QR Code reader that cannot parse the contents of QR Codes correctly. Many readers are especially weak at parsing vCards. Use a proper app from the QR Code Scanners list on this page.
Q: Do you harvest the information I enter into this form?
A: No, I don’t use the information you enter to this form in any means. After you create your 2D Code, the information is removed from my server.
Q: Can I track the scan information for the 2D Codes I create on this generator?
A: You can’t track the 2D Codes you create on this generator unless you create your own trackable URL (for example a bit.ly URL) and then enter that URL to generate a QR Code for it on this page.
Q: Do the 2D codes that were created on this generator have an expiration date?
A: No, all codes generated on this generator can be used as long as you want.
Q: Can I use the codes I create on this generator commercially? Do I need to pay any fees?
A: You can use the codes created on this generator both commercially and personally. There are no fees to pay. The only favor I ask back is the promotion of Qrafter or Qrafter Pro on your site as your recommended reader app for iOS devices. But it is only a request, you are not obliged to do that. 🙂
Q: What is the minimum size for a QR Code so that it can be scanned with all devices?
A: The answer to this question cannot be given with exact proportions. New devices with autofocus cameras can scan very small QR Codes, but old devices that don’t have autofocus cameras will have problems with scanning codes smaller than one or two inches. Also it depends on the size of the information that you put into the QR Code. You need to test your QR Code with many devices, old and new to find the best compromise.
Q: Can I overlay an image on top of the QR Code like the one in “Twitter Profile Image Overlay” action of this generator?
A: Yes you can. Create a QR Code with highest error correction and select a vector output. This way, using your preferred image editor, you can overlay an image that’s up to 30% of the QR Code. Be careful not to overlay the image on top of the 3 alignment squares though.
Kerem:
I look with anticipation for your tracking system. I get tired of hearing about the MS tag system. I use goo.gl via my Google account and it does provide some analytics, but not to my customer – unless I look it up. Look forward to this – you rock.
Roy
What is the minimum size the tag can be reduced to? We would like to have the QR code on the back of our business cards.
Well, there is no exact answer for that. You should test it yourself with different devices.
Thanks you for such a great tool! Tried this yesterday for the first time, today it is not working. Just goes to a black screen with a scroll bar at the top.
John, that’s a problem with Internet Explorer. Try another browser.
Interesting, it worked yesterday just fine.
Hi Kerem,
This generator is great! Thanks!
One feature request though – optional output to SVG using rectangles per block, so you could make more artistic QR codes by scaling/rounding the rectangles.
Regards,
Wilba
I may do that in the future, but for now it has to go to the low priority requests list. 🙂
Hi what is the best QR scanner app for the Blackberry?
Thanks In Advance,
Ian
Please take a look at Scanners section of the page.
Thanks – will work with them as EPS or SVG then. Much appreciated.
Hi Kerem – really like this generator – we are a small printer and are just testing QR codes for our customers – have done a half dozen of them using png format (as not all software will import eps or svg) and have all worked until today – have one I cannot get to read. Using iphone, Qrafter – code looks very cluttered compared to previous ones (vcard) – have tried printing in different sizes up to 2″ (would like to use it at 1″) – can read it on my monitor but not when printed (am using an HP Laserjet desk top for testing). I could send sample of the code if that helps (don’t see how to attach a file here).
Am I correct in assuming that even though the field may not have any info (like home web address) that the code would still put aside an allowance for this field) Would it be possible to get a “business card” format that would drop some of the info on the vcard (making it less “cluttered” in the code). We typically use bus ph, cell ph, email, web site, company name and address and do not use any personal info except name and title.
We would be interested in a subscription service for generating the codes if you are thinking this way – have looked at purchasing the software to do so from denso but it is not as “user friendly” and seems like overkill for us.
Thanks
Bob
Hi Bob,
The generator only adds information you added, so for example if you did not add home address, no fields for it will be added to the QR Code.
The problem is, if you make the code too small, the camera cannot recognize the pattern and fails to scan the code. I have already added an image sharpening algorithm to the beta version and testing it now, so you’ll be able to scan approx 20% smaller codes with the next version, but you can’t add a lot of information to a vCard and make it 1″.
Also, you must output as SVG or EPS and print the code from those if you will shrink the code. Shrinking a PNG image will create much worse results.
Got it…and it gave more options (call, txt, add to address book)….that works! Good stuff…thanks….
Great. Please recommend it to people if you like it, we can force other app developers to create better apps only by doing this.
Hi, this generator works well. However, when I use the “Make a Phone Call” code action it just pops up a box with the phone number in it. It is not hot-linked to actually make the call from my iPhone. Can you provide a link that I can click on to dial the number?
Thanks….
What reader are you using?
Hi Kerem, I using the ExecTag app on iPhone… Interesting that there are a variety of “readers”…makes it more challenging to put a marketing program around the QR when customers may have one that doesn’t respond appropriately…..
Thanks…
Hi Kevin,
You are using a reader that does not follow established standards. Actually I never heard of ExecTag, and that’s probably because the app is not good enough. 🙂
Try Qrafter, it will be better.
How can I get the contact information and the URL (web address) on the same code. I want to put a code on my business cards with the contact information and have prospects able to go straight to our web site by clicking on the address. I have not found a way to have the website react by touch.
Your help is appreciated,
Ray
You should create a vCard. It includes both your contact information and website address.
Kerem,
I apologize to ask such a daft question – but do you have a link to a good resource on how to create a generator such as yours. Whatever terms I google for it always returns various websites that offer already build online generators ready for use. But I would like to build my own just for fun. Thank You!!
Hi Thomas,
You should start with checking out libqrencode for generating QR Codes and the ZXing project pages for useful information. Those will be a good start.
What’s the difference between the iTunes App URL, and iTunes App Review URL options?
One takes the user to the app download page to purchase or download your app, the other takes the user to app review page to give them a quick review or rate option.
Can you track a code using bit.ly without a shortened url?
Thanks.
No, you can’t.
Maybe I’m stupid, but what is the benefit of shortening a url, when the code takes you straight to the website anyway?
To create smaller codes (better for printing), or tracking scans using bit.ly or Google Analytics.
Hi. I’m sure others have asked before, but what about adding the option to input a bit.ly (or other shortening service) key in order to save the generated shortened URL to one’s shortening service profile for link tracking? Thanks, -Danny
That can be done Danny, I’ll look into it.
Hi Kerem, I figured a way to do it…! The long way: I created a custom link in Google Analytics and added custom tracking. Then I pasted that long link into my Bit.ly account and generated a shortened link that I then customized to have some reference to the actual final url. That has tracking too. I then pasted the already shortened link into your QR code generator and skipped the shortening part and voila! A custom QR code with all kinds of tracking attached to it!
Well, of course that’s another way to do it. Instead of letting the generator shorten the link you can always shorten it beforehand. 🙂
great site! Nice job!
Would it be possible to select the size (pixels) of the QR Code? If I reduce it in another program, it becomes distorted. Thanks!
That’s what block size is for.
When I create a vCard QR Code as a TIFF file with a Block Size of 5, the dimensions of the pixels are 355X355. When I reduce the size to 100X100 the Code is too degraded to be read by a scanner. Any suggestions?
Try vector formats like SVG or EPS.
Can you have an option for smaller block sizes in pixels like 1?
Sorry, can’t. It messes with vector outputs. You just need to use vector files to make the output smaller, there is no other way.
Hi,
Thanks for such a brilliant resource. I’m thinking of using some QR codes in a book to act as URL links – i just want to check that the codes generated are ‘clean’ links (i.e. don’t redirect to the correct site via kaywa, etc.).
Thanks!
Yes they are. But be aware that some scanners still go through their own site, even though the URL they scan is not a redirected URL. You should always recommend the right scanner to your users, one that respects privacy, like Qrafter. 😉
I am clicking on the PNG option and cannot get it to print or save. I did also get it to “work” in tiff format but am unable to shrink it down to fit on business card size so i can check the scan before publishing. Pardon my ignorance.
Right click on the image itself when it appears. You won’t be able to shrink it like TIFF. You need EPS or SVG for that.
Great ap! Cam you please add a line for “BBM Pin”???
Also – is there a barcode that can be produced to make MULTIPLE calendar entries?? So, I don’t have to create 15 barcodes for 15 entries… for example. I want to make a “yearly” event calendar and print it in a magazine….. but, there is no room for 20 or so barcodes for each event. Can there be ONE barcode generated so that all these events will be added with one scan??? Man, that would be awesome!
Hi Darren,
There is already an action for BBM Pin, “Create BlackBerry Messenger User”.
For the multiple calendar entries, unfortunately that cannot be done.