QR Code and 2D Code Generator

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 for the time being. Because QR Code is much more popular than the other code formats, it is separately named in the page title. If you need more information on two dimensional bar code systems, I strongly suggest that you take a look at Roger Smolski‘s comprehensive blog on QR Code and two dimensional bar codes. Also you should check out John Hopkins‘s extensive iPhone QR Code reader roundup. Lastly, if you would like to help a student with his university expenses, you can try Michael Schade‘s QR Business Cards service.

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. You can use this form on both your desktop browser or your new generation mobile device (like iPhone). You can find the explanations under the form. If you like this page and you have ideas to implement, please give feedback, so that I can improve the page. So far, this page created 2366933 codes since I started counting in January, 2010. You can find a detailed real-time count graph that updates hourly at the bottom of the page. Seems like especially QR Codes are getting more and more popular outside the far east.

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 for 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 no scanner (yes, none of them) for any platform except Qrafter and Qrafter Pro for iPhone and iPad follows 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.

VisuaLead
Select a Code Action:
Code Type: QR Code (recommended)
Data Matrix (only ASCII chars)
Aztec Code (only ASCII chars)
Micro QR Code (only ASCII chars)
Bookmark Title: *
Web Site URL: *
Phone Number: *
SMS Message:
Mail Recipient: *
Subject:
Body:
Escape Special Characters (like
colon, semicolon or comma):
Yes No
IMPORTANT: Please check notes on escaping in Notes section.
Version: 2.1 3.0
vCard Type: Real Person Company
First Name:
Middle Name:
Last Name:
Organization:
Title:
E-Mail Address:
Mobile Phone:
Video Call Phone:
Work Phone:
Work Fax:
Home Phone:
Work Address: Street:
City:
State:
ZIP Code:
Country:
Home Address: Street:
City:
State:
ZIP Code:
Country:
Address: Street:
City:
State:
ZIP Code:
Country:
Work Web Address:
Home Web Address:
Web Address:
Birthday:
Event Format: Fully Compliant to iCalendar Standard Compliant to ZXing Proposal
Event Summary: *
Event Description:
Full Day Event: Yes (Only uses start date and end date) No (Also uses start time and end time)
Start Date:
Start Time:
End Date:
End Time:
Text: *
NOTE: Google Maps will be used to select the coordinates, but the resulting url will be a Bing Maps URL.
Location Name:
 
Twitter User: *  
Prepend username before tweet
Twitter User: *
Text to Tweet: *
Search Type: Publisher Search Exact Package Name
Market Search: *
Package Name: *
Youtube Video ID: *  
Enter either only the YouTube video ID or full URL for the video.
iTunes App ID: *  
Enter either only the App ID or full URL for the app on iTunes.
Venue ID: *  
Enter either only the venue ID or full URL for the venue.
Facebook Status: *
BBM Pin: *
SSID: *
Password:
Network Type:
URL Shortening:
(will use full url in case of error)
Error Correction Level:
(only for regular QR Code)
Block Size in Pixels:
Margin Size in Blocks:
Output Type:
Foreground Color: Transparent
Background Color: Transparent

Download on the App Store


 


If this generator has somehow been useful to your commercial business, perhaps you would consider contributing by clicking the PayPal button below.





Notes:

You can follow me on Twitter through @kerem_erkan. This generator shares a Facebook page with Qrafter and Qrafter Pro since March 2011. You can like that page using the “Like” button above, or you can go to the Facebook page using this link. You can also tweet about this page by clicking this link.

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 j.mp (alternative name for 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 Google Maps URLs.
  • You can create Bing Maps URLs.
  • You can create raw geological coordinates.
  • 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 initiate a chat to a particular Blackberry PIN on Blackberry Messenger.
  • 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. For example, if you enter letters for phone number in “Make a Phone Call” action, and your device initiates a nuclear launch sequence in a forgotten former U.S.S.R. rocket silo, it will be your problem, not mine.

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.

And lastly, it seems like anything added to this generator is being followed a lot by other generator makers (I am looking at you Avivo) without giving any credit. I hope they also follow the necessary standards properly. ;)

QR Code Scanners:

The best scanner apps for iPhone and iPad are Qrafter and Qrafter Pro (why two versions?). They are available on the App Store. They are designed for both iPhone and iPad and Qrafter is free (scanning is free and you can unlock Pro generation features via an in app purchase) while Qrafter Pro is $2.99. 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. You can also visit Qrafter and Qrafter Pro’s Facebook Page here.

For Android, the best option seems to be the Barcode Scanner app from ZXing.

For BlackBerry, QR Code Scanner Pro is a good choice according to Josh West, one of the commenters on this page.

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.

You can also check out http://QRmediaGuide.com for a list of other scanners.

QR Code is registered trademark of DENSO WAVE INCORPORATED.

FAQ:

Here is an updating list of frequently asked questions.

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 to 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: While I am working on a tracking platform, you can’t track the 2D Codes you create on this generator unless you create your own trackable goo.gl or 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.


Codes count
  • Cezar
    #942 written by Cezar 1 year ago

    Hi Kerem,

    I am wondering if your qr code reader, can be configured by the smartphone user, to send an extra custom HTTP header?

    • Kerem
      #943 written by Kerem 1 year ago

      Hi Cezar,

      No, that can’t be done. While it is possible to do it, this needs special programming.

  • Tamara
    #944 written by Tamara 1 year ago

    I think I am missing something about generating a Google Maps code.

    I’ve entered the address in the search bar on the map, and got the correct location pin. But when I click “Generate Code,” I get this error message:

    “Please click on the desired place on the map to set location coordinates to encode.”

    What does this mean? The pin is already in the map — what else am I supposed to click?

    • Kerem
      #945 written by Kerem 1 year ago

      You have to click on the map yourself after finding the address. That will let the generator know the exact location.

  • Filip Wahlberg
    #946 written by Filip Wahlberg 1 year ago

    Brilliant, you seem to have thought of everything. But maybe you are a bit too clever: I want to encode coordinates, and I don’t need the Google Maps interface but I have to use it. It gives a ridiculous accuracy of 15 decimal points (giving a position well within the size of an atom!), and I can’t seem to round it off. All this data results in unneccesarily large codes. Please:
    1. round off Google Map’s output to 5 decimal points (an accuracy of better than a meter) and
    2. let me be able to select geo type and still use text box input!

  • Filip Wahlberg
    #947 written by Filip Wahlberg 1 year ago

    Additional note: I just found out that you can type for instance “GEO:59.2936,18.083 as “Free formatted text” and get a working geo tag. I consider that a hack, though.

    • Kerem
      #948 written by Kerem 1 year ago

      Filip, that’s exactly the same with what “Geographical coordinates” does. I wouldn’t consider it to be a hack, it’s impossible to add everything to the generator, but you can always use “Free formatted text” for anything the generator cannot do. You can even create custom vCards with it.

  • Louise Teaman
    #949 written by Louise Teaman 1 year ago

    I downloaded Qrafter for a class I’m taking. I’m having trouble copying and pasting the QR code, so the instructor suggests that I enter the permalink html code for the QR code that I generated. Is there some way I can access this html?

    • Kerem
      #950 written by Kerem 1 year ago

      Louise, are you trying to copy the QR Code image?

  • Louise Teaman
    #951 written by Louise Teaman 1 year ago

    I copied the image but it would not paste into the Moodle form we are using for the class. I got it to paste into an email to myself, but when I tried to paste into the class form, it was huge and I couldn’t get it to decrease in size propotionately. So I pasted it into a photo editor and decreased the size, but I was back to the beginning and couldn’t get it to paste. Argh! My head hurts.

    So, can I not access a premanent URL for the code image?

    Thanks for trying to help.

    • Kerem
      #952 written by Kerem 1 year ago

      The problem is, the QR Code is an image that is on your device. It does not have a URL, the form you are trying to enter it to should have some file upload ability.

  • Tomas
    #953 written by Tomas 1 year ago

    Great tool!
    I would be interested to donate if I use it. However I’m unable to get UTF-8 characters like åäö working.

    • Kerem
      #954 written by Kerem 1 year ago

      Thanks Tomas. All UTF-8 characters work without problems. Perhaps your reader does not support them. Try Qrafter if you have an iOS device.

  • mw
    #955 written by mw 1 year ago

    I would like code an adress with qrafter pro. It would be great if outlook knows (after scanning the code) what line belongs to the name, lastname, street, state etc. Is that possible with qrafter pro? Yes, then please give me an smal manual.
    Thanks an cheers MW

    • Kerem
      #956 written by Kerem 1 year ago

      Qrafter Pro creates standard vCard QR Codes. Try the generator on this page to see if Outlook understands the vCard QR Code. If it does, just create a QR Code for a contact on your phone using Qrafter Pro.

  • Paula van remmen
    #957 written by Paula van remmen 1 year ago

    I’ve made a QR code some months ago. Now the URL is changing, but the QR code is printed on several places. Is it possible to change the URL without making a new QR code?

  • Filip Wahlberg
    #958 written by Filip Wahlberg 1 year ago

    Regarding #948. Yes, it is quite feasible to write the coordinates yourself and I agree that the generator interface shouldn’t become too cluttered with options. Still, you can very easily round off the Google Maps coordinates to DD.DDDDD format without hassle for the user. Smaller codes are always nice!

    Another “invisible” feature would be if the generator automatically selected the best error correction level that fits in the same code size as the error correction chosen by the user… So in fact you chose level “Low or better” and so on.

  • sibalisko
    #959 written by sibalisko 1 year ago

    Dear Kerem,
    hi, i have a idea to generate a new function for qr code and its work after scanning.
    Can we discuss it in email communication pls ?

    With Best Regards,
    ing. sibalisko

  • PC
    #960 written by PC 1 year ago

    Dear Kerem,
    If i have created QRCodes for my products and later on we change our website and URL address, do i need to create new QRCode or is there a way for me to change it on my existing one?

    PC

  • Simon Berube
    #961 written by Simon Berube 1 year ago

    PC, that doesn’t really relate to QR codes. When the URL structure or individual pages change at your website, then you should set up redirects. I see that your website is running on an IIS server. I’d recommend looking up web.config redirect for information on how to set up the redirection.

  • Filip Wahlberg
    #962 written by Filip Wahlberg 1 year ago

    International (8-bit) characters (ä, ú etc.) cause the Aztec free-text generator to report that the text is too long even though it is not. The same characters are allowed in a micro QR code, though.

    • Kerem
      #963 written by Kerem 1 year ago

      Yes, that’s why I wrote the “only ASCII characters” disclaimer. Micro QR Code generator supports some, but not all.

  • Oliver
    #964 written by Oliver 1 year ago

    Hi there,

    I want to create a vCard with two web addresses, but both are business addresses. In your web template I can only designate one to work and one to home. Is there are way to list both as work?

    As an alternative I would use the free text form and simply fill in my details there (although then it would not be saved as a vCard on most devices, correct?

  • Oliver
    #965 written by Oliver 1 year ago

    Alternatively, can I use an existing vCard to generate QR?

    • Kerem
      #966 written by Kerem 1 year ago

      Hi Oliver,

      Yes, use “Free Formatted Text” option and insert the contents of the existing vCard. That would be better, it is not possible to change the fields on the generator currently.

  • James Brooks
    #967 written by James Brooks 1 year ago

    Hi there

    I’m trying to create a QR code for an event. QR Code readers (I’ve used several including QRafter) are not picking up the date and time elements – defaulting to 1 Jan 2001 – any advice? Thank you.

    • Kerem
      #968 written by Kerem 1 year ago

      Try using another browser. Your browser may have javascript issues with the site.

  • BP
    #969 written by BP 1 year ago

    One of my clients informed me her iPhone could not pick up her code. Another smart phone did. Her nephew said it was because the code was created with http:// and apple products do not work with http:// in the scan.

    I played with the code creater and created the code again without the http:// and when I scanned the code, on my phone (android) it filled in the http://

    I an apple product scans the qr code without the http:// will it work? Is there always an http:// placed infront of the webaddress when the code if created or is my phone automatically filling it in?
    Is this a real issue or is the nephew mistaken?

    Thank you!

    • Kerem
      #970 written by Kerem 1 year ago

      You should enter http:// before the code always. If you don’t, some scanners will not be able to understand that the code has a URL.

      About the iPhone not understanding the content of the code, your client seems to be using an inferior scanner or a very old iPhone with a non focus camera. Tell them to use Qrafter.

      • Kimberli
        #971 written by Kimberli 1 year ago

        With the iPhone, it tries to pull up the website, meaning that it is reading the code, the error is this:

        NOT FOUND (404)
        The requested URL //www.sylviagriffin.com/ was not found on this server.

        The android phone has no problem using the QR code to load the page.

        How can we avoid the error message for the iPhone, it almost loads the page…

      • Kimberli
        #972 written by Kimberli 1 year ago

        The iPhone is reading part of the code, it tries to load the website, the error says

        (404) website not found //www.sylviagriffin.com

        Qrafter gives us the SAME error with the iPhone!

        The android has no problem with this website.

        Is there any way to fix this?

        • Kerem
          #973 written by Kerem 1 year ago

          Please send the code image to my mail address so that I can check it. You can find my mail on the contact page.

  • Jacob
    #974 written by Jacob 1 year ago

    Hey Kerem!

    I just wanted to thank you for this awesome QR code generator. I use it all the time with my business. I can’t find a better one out there haha, I actually found this generator out from a WSO I purchased.

    Thanks again Kerem!

    • Kerem
      #975 written by Kerem 1 year ago

      Hi Jacob,

      Glad to hear that you like the generator.

      Cheers!

  • Jack
    #976 written by Jack 1 year ago

    Hi Kerem,
    Is there any FREE API/ or any Libraray is available to generate
    QR codes with the same options. I had seen libraries like phpqrcode but they don’t have much options

    Thanks & regards
    JAck

    • Kerem
      #977 written by Kerem 1 year ago

      Hi Jack,

      I don’t think so. I created the options myself.

  • You may use these HTML tags: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <strike> <strong>

  • Comment Feed for this Post
Go to Top