You are on page 1of 37

QR Code

1. INTRODUCTION

A QR code (abbreviated from Quick Response code) is a type of matrix barcode (or two-dimensional code) first designed for the automotive industry. More recently, the system has become popular outside of the industry due to its fast readability and comparatively large storage capacity. The code consists of black modules arranged in a square pattern on a white background. The information encoded can be made up of any kind of data (e.g., binary, alphanumeric, or Kanji symbols). Created by Toyota subsidiary Denso Wave in 1994 to track vehicles during the manufacturing process, the QR code is one of the most popular types of two-dimensional barcodes. It was designed to allow its contents to be decoded at high speed. The technology has seen frequent use in Japan. The United Kingdom is the seventh-largest national consumer of QR codes. They come to us from Japan where they are very common. QR is short for Quick Response (they can be read quickly by a cell phone). They are used to take a piece of information from a transitory media and put it in to your cell phone. You may soon see QR Codes in a magazine advert, on a billboard, a web page or even on someones t-shirt. Once it is in your cell phone, it may give you details about that business (allowing users to search for nearby locations), or details about the person wearing the t-shirt, show you a URL which you can click to see a trailer for a movie, or it may give you a coupon which you can use in a local outlet. The reason why they are more useful than a standard barcode is that they can store (and digitally present) much more data, including URL links, geographical coordinates and text. The other key feature of QR Codes is that instead of requiring a chunky hand-held scanner to scan them, many modern cell phones can scan them.

QR Code

1.1 Anatomy of a QR Code


QR codes are designed to have a 30% leeway for poor image capturing or scanning this means slight visual alterations can be made to customize QR Codes (e.g. slapping your logo on top of it, etc.).

Fig 1.1 Structure of QR Code Before any customization experiments are done, it is important to understand the different parts of the QR code and what can/cannot be altered. 1) Finder Pattern - Enables scanners to identify the QR Code. Alterations can prevent scanners from reading the code 2) Format Info - What scanners read first when the code is decoded. It contains the mask pattern and error correction rate of the code. 3) Timing Pattern - White and black modules (pixel element) are alternately arranged to determine the coordinate. The timing pattern is placed between two finder patterns in a QR code.
2

QR Code

4) Version Info - Identifies the version of the QR Code. Data storage capacity and error correction levels vary by version. 5) Encoded Data - data that needs to be interpreted by the scanner. 6) Alignment Pattern - Enables QR Code scanners to correct for distortion when the code is bent or curved. Distortion and alterations to this pattern is not recommended 7) Quite Zone - Space left around the QR Code for optimal readability. It is suggested that quiet zones are 2-4 modules wide. A module is the single smallest pixel element of the QR Code.[1]

QR Code

1.2 Advantages
High Capacity Encoding of Data While conventional bar codes are capable of storing a maximum of approximately 20 digits, QR Code is capable of handling several dozen to several hundred times more information. QR Code is capable of handling all types of data, such as numeric and alphabetic characters, Kanji, Kana, Hiragana, symbols, binary, and control codes. Up to 7,089 characters can be encoded in one symbol.[2]

QR Code Data capacity Numeric only Alphanumeric Binary (8 bits) Kanji, full-width Kana Max. 7,089 characters Max. 4,296 characters Max. 2,953 bytes Max. 1,817 characters

Small Printout Size Since QR Code carries information both horizontally and vertically, QR Code is capable of encoding the same amount of data in approximately one-tenth the space of a traditional bar code. (For a smaller printout size, Micro QR Code is available.[2]

QR Code

Readable from any direction in 360 QR Code is capable of 360 degree (Omni-directional), high speed reading. QR Code accomplishes this task through position detection patterns located at the three corners of the symbol. These position detection patterns guarantee stable high-speed reading, circumventing the negative effects of background interference. [2]

Dirt and Damage Resistant QR Code has error correction capability. Data can be restored even if the symbol is partially dirty or damaged. A maximum 30% of codewords*1 can be /restored. [2]

QR Code

1.3 Disadvantages
A disadvantage for the QR Code fad is that smart phones are far more expensive compared to the conventional phone. It is a form of investment for internet-savvy people but for those who are 40 years old and above, there is absolutely no need to waste such money on technology. But with that said, the market is very competitive and the competitiveness is bringing the price down.
[3]

QR Code

2. LITERATURE SURVEYED
QR Codes & Mobile Marketing for the Small Business Owner By Michael Weir This book provides the knowledge about the QR Code and its history. The QR Codes are more popular 2-Dimensional barcodes than standard barcodes. The QR Code has high data storage capacity as it stores about 7000 digits. This book also provies the knowledge that the QR Codes can be easily captured through smart phones, iphones and no need of using chunky hand-held scanners.

Scan-me Everybodys guide to the magical world of QR Code By Mick Winter A QR Code can link mobile phone users to information and entertainment that they dont otherwise get-at the time and at the location. Give them information that they want or need but which isnt available. Through mobile phones we can easily capture the information and store the information such as URL links, geographical coordinates and text. QR Code are scalable in size and resolution , so we can modify too our needs . Its generally recommended not to make them smaller than 100 pixel.

QR Code: High-impact Strategies - What You Need to Know By Kevin Roebuck This book provides the information of Definitions, Adoptions, Impact and Benefits. Acc. to this book, this technology has a frequent use in Japan and the United Kingdom is the seventh largest consumer of QR Code.

QR Code

3. PROBLEM DEFINITION
Our Project aim is to develop a platform where a person can easily generate QR Code and use this QR Code in his documents and applications. For example: We can create QR Code that can store information like our Name, Address Telephone No, Email Id, Face book Id. Now as soon as somebody scans this QR Code from his mobile phone all this information will be transmitted to the mobile and stored in a text format that can be stored in the mobile phone without typing.

The data stored by standard bar code is only up to 20 digits so the QR code can store much more data than the standard barcodes Standard barcode cannot link to a website where as QR code can directly link to a website.

QR Code

4. WORK METHODOLOGY
Create graphics with PHP
PHP's built-in drawing primitives are like a paint program. They're great for rendering to an image, but they aren't so good if you want to think of your image as a set of objects. This article shows you how to build an object-oriented graphics library to sit on top of the PHP graphics library. You'll use the object-oriented extensions provided in PHP V5. With object-oriented graphics support, your graphics code is much easier to understand and maintain. And you have the potential for rendering a graph into multiple types of media -- Flash movies, SVG, etc. -- from a single bit of graphing source. The goal is:Creating a graphics object library involves three primary goals: Move from primitives to objects Instead of using imageline, imagefilledrectangle, and other graphics functions, this library should provide objects like Line, Rectangle, and Oval that can be rendered to an image. It should also support the ability to make larger complex objects or to group objects together. Allow for z-ordering Drawing programs let the artist move a graphics object above or below other objects on the drawing surface. The library should support this ability to position one object before or after another using a z value that defines the object's height from the surface of the drawing plane. Objects with higher z values are drawn later and, thus, appear on top of objects with a lower z value. Provide for viewport transformations Often, the data's coordinate space is not the same as the image. The graphics primitives in PHP work on the coordinate plane of the image. The graphics library should support the specification of a viewport so you can specify the
9

QR Code

graphics in a coordinate system that is friendlier to the programmer and automatically scales to fit an image of any size. Because this is a large set of features, you'll write the code step by step to show how the code evolves to add functionality. The basics Let's start with a graphics environment object and an interface called Graphics Object implemented by a Line class that draws lines. The UML is shown in Figure 1.

Figure 4.1. The graphics environment and the graphics object interface The GraphicsEnvironment class holds the graphics object and a set of colors. It also contains the width and height. The saveAsPng method draws the current image out to the specified file. The GraphicsObject is the interface that any graphics object must implement. To start with, all you need is the render method to draw the object. It's implemented by a Line class that takes four coordinates: the starting and ending x values, and the starting and ending y values. It also has a color. When render is called, the object draws a line from sx,sy to ex,ey of the color specified by name.
10

QR Code

The code for the library is shown in Listing 1.

4.1. Listing 1. The basic graphics library


<?php class GraphicsEnvironment { public $width; public $height; public $gdo; public $colors = array(); public function __construct( $width, $height ) { $this->width = $width; $this->height = $height; $this->gdo = imagecreatetruecolor( $width, $height ); $this->addColor( "white", 255, 255, 255 ); imagefilledrectangle( $this->gdo, 0, 0, $width, $height, $this->getColor( "white" ) ); } public function width() { return $this->width; } public function height() { return $this->height; } public function addColor( $name, $r, $g, $b ) { $this->colors[ $name ] = imagecolorallocate( $this->gdo, $r, $g, $b ); } public function getGraphicObject() { return $this->gdo; }
11

QR Code

public function getColor( $name ) { return $this->colors[ $name ]; } public function saveAsPng( $filename ) { imagepng( $this->gdo, $filename ); } } abstract class GraphicsObject { abstract public function render( $ge ); } class Line extends GraphicsObject { private $color; private $sx; private $sy; private $ex; private $ey; public function __construct( $color, $sx, $sy, $ex, $ey ) { $this->color = $color; $this->sx = $sx; $this->sy = $sy; $this->ex = $ex; $this->ey = $ey; } public function render( $ge ) { imageline( $ge->getGraphicObject(), $this->sx, $this->sy, $this->ex, $this->ey, $ge->getColor( $this->color ) ); }
12

QR Code

} ?> The test code is shown in Listing 2.

4.2. Listing 2. The test code for the basic graphics library
Listing 2. The test code for the basic graphics library <?php require_once( "glib.php" ); $ge = new GraphicsEnvironment( 400, 400 ); $ge->addColor( "black", 0, 0, 0 ); $ge->addColor( "red", 255, 0, 0 ); $ge->addColor( "green", 0, 255, 0 ); $ge->addColor( "blue", 0, 0, 255 ); $gobjs = array(); $gobjs []= new Line( "black", 10, 5, 100, 200 ); $gobjs []= new Line( "blue", 200, 150, 390, 380 ); $gobjs []= new Line( "red", 60, 40, 10, 300 ); $gobjs []= new Line( "green", 5, 390, 390, 10 ); foreach( $gobjs as $gobj ) { $gobj->render( $ge ); } $ge->saveAsPng( "test.png" ); ?> This test creates a graphics environment. It then creates a few lines pointing in different directions and having different colors. Next, the render method draws them onto the graphics plane. At the end, the code saves the image as test.png. The command-line interpreter runs the code throughout the article, as follows: % php test.php %
13

QR Code

Figure 4. 2 show how the resulting test.png file looks in Firefox.

Figure 4.2. A simple graphics object test Adding dimensions With the first requirement -- the ability to have graphic objects -- out of the way, it's time to move on to the second requirement: the ability to position objects above and below each other using a z dimension. Think of each z level being like a plane the size of the original image. The drawing elements are drawn in order from lowest to highest. For example, let's draw two graphics elements: a red circle and a black box. Begin with the circle at 100 and the box at 200. That puts the circle behind the box, as shown in Figure 3.

14

QR Code

Figure 4.3. The different z-order planes Flip the values around, and show the red circle popping above the black rectangle with only a change to the z values. To do this, you need each GraphicsObject to have a z() method that returns a numeric z value. Because you'll create different graphics objects (Line, Oval, and Rectangle), you'll also create a base class called BoxObject used by all three to maintain the starting and ending coordinates, the z value, and the color of the object (see Figure 4).

Figure 4.4. Adding the z dimension to the system

15

QR Code

The new code for the graphics library is shown in Listing 3.

4.3. Listing 3.The graphics library that can handle z information


<?php class GraphicsEnvironment { public $width; public $height; public $gdo; public $colors = array(); public function __construct( $width, $height ) { $this->width = $width; $this->height = $height; $this->gdo = imagecreatetruecolor( $width, $height ); $this->addColor( "white", 255, 255, 255 ); imagefilledrectangle( $this->gdo, 0, 0, $width, $height, $this->getColor( "white" ) ); } public function width() { return $this->width; } public function height() { return $this->height; } public function addColor( $name, $r, $g, $b ) { $this->colors[ $name ] = imagecolorallocate( $this->gdo, $r, $g, $b ); } public function getGraphicObject() { return $this->gdo;
16

QR Code

} public function getColor( $name ) { return $this->colors[ $name ]; } public function saveAsPng( $filename ) { imagepng( $this->gdo, $filename ); } } abstract class GraphicsObject { abstract public function render( $ge ); abstract public function z(); } abstract class BoxObject extends GraphicsObject { protected $color; protected $sx; protected $sy; protected $ex; protected $ey; protected $z; public function __construct( $z, $color, $sx, $sy, $ex, $ey ) { $this->z = $z; $this->color = $color; $this->sx = $sx; $this->sy = $sy; $this->ex = $ex; $this->ey = $ey; } public function z() { return $this->z; } }
17

QR Code

class Line extends BoxObject { public function render( $ge ) { imageline( $ge->getGraphicObject(), $this->sx, $this->sy, $this->ex, $this->ey, $ge->getColor( $this->color ) ); } } class Rectangle extends BoxObject { public function render( $ge ) { imagefilledrectangle( $ge->getGraphicObject(), $this->sx, $this->sy, $this->ex, $this->ey, $ge->getColor( $this->color ) ); } } class Oval extends BoxObject { public function render( $ge ) { $w = $this->ex - $this->sx; $h = $this->ey - $this->sy; imagefilledellipse( $ge->getGraphicObject(), $this->sx + ( $w / 2 ), $this->sy + ( $h / 2 ), $w, $h, $ge->getColor( $this->color ) ); } } ?> The test code also needs to be upgraded, as shown in Listing 4.
18

QR Code

4.4 Listing 4. The upgraded test code


<?php require_once( "glib.php" ); function zsort( $a, $b ) { if ( $a->z() < $b->z() ) return -1; if ( $a->z() > $b->z() ) return 1; return 0; } $ge = new GraphicsEnvironment( 400, 400 ); $ge->addColor( "black", 0, 0, 0 ); $ge->addColor( "red", 255, 0, 0 ); $ge->addColor( "green", 0, 255, 0 ); $ge->addColor( "blue", 0, 0, 255 ); $gobjs = array(); $gobjs []= new Oval( 100, "red", 50, 50, 150, 150 ); $gobjs []= new Rectangle( 200, "black", 100, 100, 300, 300 ); usort( $gobjs, "zsort" ); foreach( $gobjs as $gobj ) { $gobj->render( $ge ); } $ge->saveAsPng( "test.png" ); ?> There are two things to notice here. First is the addition of the creation of the Oval and Rectangle objects, where the first parameter is the z value. Second is the call to usort, which uses the zsort function to sort the graphics objects by the z value. When you run the program, the test.png file should look like Figure 4.5.

19

QR Code

Figure 4.5. The red circle behind the black square Now, make the following code change: $gobjs []= new Oval( 200, "red", 50, 50, 150, 150 ); $gobjs []= new Rectangle( 100, "black", 100, 100, 300, 300 ); Run the code again, and suddenly the oval pops up above the rectangle, as shown in Figure 6.

20

QR Code

Figure 4.6. The red circle is now above the rectangle The red circle appears above the rectangle, even though it's created first and added to the array first. That is the real value of the z dimension: You can create objects in any order you choose and position them relative to each other by adjusting the z value on each object. In this code, the z-order sorting is done outside the library. Let's fix that by creating a new container object called a Group that can hold a bunch of GraphicsObjects. The Group object will then handle the sorting. The code for the Group class is shown in Listing 5.

4.5 Listing 5. The Group class


function zsort( $a, $b ) { if ( $a->z() < $b->z() ) return -1; if ( $a->z() > $b->z() ) return 1;
21

QR Code

return 0; } class Group extends GraphicsObject { private $z; protected $members = array(); public function __construct( $z ) { $this->z = $z; } public function add( $member ) { $this->members []= $member; } public function render( $ge ) { usort( $this->members, "zsort" ); foreach( $this->members as $gobj ) { $gobj->render( $ge ); } } public function z() { return $this->z; } } The Group object's job is to hold an array of objects and then, when it's rendered, do the sort and render the objects one by one. The updated test code is shown in Listing 6.

4.6. Listing 6. The upgraded test code


<?php require_once( "glib.php" ); $ge = new GraphicsEnvironment( 400, 400 );
22

QR Code

$ge->addColor( "black", 0, 0, 0 ); $ge->addColor( "red", 255, 0, 0 ); $ge->addColor( "green", 0, 255, 0 ); $ge->addColor( "blue", 0, 0, 255 ); $g1 = new Group( 0 ); $g1->add( new Oval( 200, "red", 50, 50, 150, 150 ) ); $g1->add( new Rectangle( 100, "black", 100, 100, 300, 300 ) ); $g1->render( $ge ); $ge->saveAsPng( "test.png" ); ?> Now all the client has to do is create one Group object. It will handle ordering and rendering everything else.

Creating a viewport A viewport is an artificial coordinate system that is translated into the physical coordinate system of the image. The extents of the viewport can be anything you want them to be. For example, the start and end of both the x and y axes could be 2 and 2, making the center of the viewport's coordinate plane 0, 0. That would be a nice viewport for trigonometric graphics like sins or cosines. Or, the viewport could be asymmetric, with y values ranging from -1 to 1 and x values range from 0 to 10,000, depending on your needs. The other value of a viewport is that the logic that builds a 400-by-400 image is the same logic that builds a 4,000-by-2,000 image. The code writes to viewport, and the viewport does the mapping to the physical size of the image automatically. To start your viewport work, you'll fix the viewport to range from 0,0 to 1,1 by having the graphics objects call back to the graphics environment to translate their viewport coordinates to physical coordinates. You'll make life a little easier by putting all the code into the BoxObject base class. Figure 7 shows two things about the new code. First is the addition of the tx and ty methods, which translate x and y coordinates from the viewport to the physical
23

QR Code

image. Second is the addition of the draw method on the BoxObject, which derived classes should use to do the drawing. The BoxObject handles the viewport translation in the render method and calls the draw method with the physical coordinates. This way, the Line, Oval, and Rectangle classes can all work with viewport coordinates without having to worry about the translation.

Figure 4.7. The additions for the graphic environment viewport translations The code for the new library is shown in Listing 7.

4.7. Listing 7. The graphics library with the start of viewport support
<?php class GraphicsEnvironment { public $width; public $height; public $gdo; public $colors = array();
24

QR Code

public function __construct( $width, $height ) { $this->width = $width; $this->height = $height; $this->gdo = imagecreatetruecolor( $width, $height ); $this->addColor( "white", 255, 255, 255 ); imagefilledrectangle( $this->gdo, 0, 0, $width, $height, $this->getColor( "white" ) ); } public function width() { return $this->width; } public function height() { return $this->height; } public function addColor( $name, $r, $g, $b ) { $this->colors[ $name ] = imagecolorallocate( $this->gdo, $r, $g, $b ); } public function getGraphicObject() { return $this->gdo; } public function getColor( $name ) { return $this->colors[ $name ]; } public function saveAsPng( $filename ) { imagepng( $this->gdo, $filename ); } public function tx( $x ) { return $x * $this->width;
25

QR Code

} public function ty( $y ) { return $y * $this->height; } } abstract class GraphicsObject { abstract public function render( $ge ); abstract public function z(); } function zsort( $a, $b ) { if ( $a->z() < $b->z() ) return -1; if ( $a->z() > $b->z() ) return 1; return 0; } class Group extends GraphicsObject { private $z; protected $members = array(); public function __construct( $z ) { $this->z = $z; } public function add( $member ) { $this->members []= $member; } public function render( $ge ) { usort( $this->members, "zsort" ); foreach( $this->members as $gobj ) { $gobj->render( $ge ); }
26

QR Code

} public function z() { return $this->z; } } abstract class BoxObject extends GraphicsObject { protected $color; protected $sx; protected $sy; protected $ex; protected $ey; protected $z; public function __construct( $z, $color, $sx, $sy, $ex, $ey ) { $this->z = $z; $this->color = $color; $this->sx = $sx; $this->sy = $sy; $this->ex = $ex; $this->ey = $ey; } public function render( $ge ) { $rsx = $ge->tx( $this->sx ); $rsy = $ge->ty( $this->sy ); $rex = $ge->tx( $this->ex ); $rey = $ge->ty( $this->ey ); $this->draw( $rsx, $rsy, $rex, $rey, $ge->getGraphicObject(), $ge->getColor( $this->color ) ); } abstract public function draw( $sx, $sy, $ex, $ey, $gobj, $color ); public function z() { return $this->z; } }
27

QR Code

class Line extends BoxObject { public function draw( $sx, $sy, $ex, $ey, $gobj, $color ) { imageline( $gobj, $sx, $sy, $ex, $ey, $color ); } } class Rectangle extends BoxObject { public function draw( $sx, $sy, $ex, $ey, $gobj, $color ) { imagefilledrectangle( $gobj, $sx, $sy, $ex, $ey, $color ); } } class Oval extends BoxObject { public function draw( $sx, $sy, $ex, $ey, $gobj, $color ) { $w = $ex - $sx; $h = $ey - $sy; imagefilledellipse( $gobj, $sx + ( $w / 2 ), $sy + ( $h / 2 ), $w, $h, $color ); } } ?> The translation code in the GraphicsEnvironment class is highlighted, as is the render code in the GraphicsObject, which calls back to the graphic environment for coordinate translation.

28

QR Code

The test code changes only a little (see Listing 8). The objects now need to be specified in the viewport between 0,0 and 1,1.

4.8. Listing 8. The test code with the new viewport coordinates
$g1 = new Group( 0 ); $g1->add( new Oval( 200, "red", 0.1, 0.1, 0.5, 0.5 ) ); $g1->add( new Rectangle( 100, "black", 0.4, 0.4, 0.9, 0.9 ) ); This is all well and good, but you don't really want a viewport between 0,0 and 1,1. You want any arbitrary viewport -- for example, between -1000,-1000 and 1000,1000. To get that to work, the graphics environment needs to know the start and end coordinates of the viewport. Figure 8 shows the upgraded GraphicsEnvironment class with member variables that store the starting and ending coordinates of the viewport as vsx, vsy and vex, vey. The graphics objects don't need to change.

Figure 4.8 A graphics environment with a flexible viewport specification Listing 9 shows the upgraded GraphicsEnvironment code.

29

QR Code

4.9. Listing 9. The updated Graphics Environment


class GraphicsEnvironment { public $vsx; public $vsy; public $vex; public $vey; public $width; public $height; public $gdo; public $colors = array(); public function __construct( $width, $height, $vsx, $vsy, $vex, $vey ) { $this->vsx = $vsx; $this->vsy = $vsy; $this->vex = $vex; $this->vey = $vey; $this->width = $width; $this->height = $height; $this->gdo = imagecreatetruecolor( $width, $height ); $this->addColor( "white", 255, 255, 255 ); imagefilledrectangle( $this->gdo, 0, 0, $width, $height, $this->getColor( "white" ) ); } public function width() { return $this->width; } public function height() { return $this->height; } public function addColor( $name, $r, $g, $b ) { $this->colors[ $name ] = imagecolorallocate( $this->gdo, $r, $g, $b ); }
30

QR Code

public function getGraphicObject() { return $this->gdo; } public function getColor( $name ) { return $this->colors[ $name ]; } public function saveAsPng( $filename ) { imagepng( $this->gdo, $filename ); } public function tx( $x ) { $r = $this->width / ( $this->vex - $this->vsx ); return ( $x - $this->vsx ) * $r; } public function ty( $y ) { $r = $this->height / ( $this->vey - $this->vsy ); return ( $y - $this->vsy ) * $r; } } Now the constructor takes four additional parameters, which are the starting and ending points of the viewport. The tx and ty functions use these new viewport coordinates to translate viewport coordinates into physical coordinates.[]

31

QR Code

5. IMPLEMENTATION CHALLENGES
1) Programming of a Graphics Library for PHP to develop a mechanism to generate QR Codes. 2) Since Graphics programming is the most tedious and difficult part in any programming language, it will be really a challenge to develop a mechanism that not only generates simple graphics but also embeds information into the graphics(i.e. generation of QR Code)

32

QR Code

6. APPLICATIONS
The QR code will act as a paper hyperlink in the future. Just Scan the the code and paper and you automatically redirected to the website.[5]

Fig 6.1 QR Code on Business card QR codes appeared on flyers, postcards, business cards, t-shirts, stickers, and swag. Organizers of the Austin gathering for film, music, and Web geeks even included a QR code on every registrant's badge to cut down on paper waste and manual data entry. A quick response (QR) code is a two dimensional code that can be scanned and read by smartphone cameras to transfer information. The information can then be encoded to text, add a vCard contact, open a URL or much more. So, by placing them on a business card, you can digitally pass on your contact details, direct people to a website, send them to a Flickr photo set or Facebook fan page or offer a special discount etc.
33

QR Code

Fig 6.2 QR Code on t-shirt. Your QR Tag on your clothing will make you really stand out from the crowd. And let you communicate with your world in your language, in your style. Any excuse photo, website, comment - anything's possible with a QR Tag. First, install a QR scanner application on your smart phone. Search the Web for "QR Reader" and the model of your phone to find a scanner application; they're available for the iPhone, Windows Mobile, Nokia, BlackBerry, and other appbased phones with a camera built in.

34

QR Code

7. CONCLUSION
Our project aim is to develop a platform where a person can easily generate QR Code and use this QR Code in his documents, applications or even products. The QR Code is more useful than a standard barcode because they can store much more data including URL links, geographical coordinates and text. In our project we do not require chunky hand-held scanner to scan as many modern cell phones can easily scan them easily. This project will provide an ordinary computer user with option of generating his own QR Code. The amount of data that can be stored in the QR code depends on the character set, version and error correction level. The maximum values for version 40 with error correction capacity level. QR Codes, although said to be one of the best things to happen to the internet-savvy society in today's world, has its disadvantages but we are only regarding it in the light of modern society's acceptance at this present moment. The popularity of QR Code is growing rapidly all around the world and we are seeing more cell phone users switch from the conventional cell phone to a smart phone, like Blackberry and iphone, two of the major market leaders in the cell phone market today.

35

QR Code

8. FUTURE SCOPE
1) Store more than 7,000 characters. 2) QR code can be used in ticketing in theaters and railways. 3) It is making our life richer and efficient. With a quick scan these barcode allow us to move seamlessly from the physical to digital world, entertaining and informing us along the way. 4) It can be used to implement security feature on identity cards to check authenticity of I cards.

36

QR Code

9. REFERENCES
[1] http://www.betterresponseblog.com/index.php/industrytrends/anatomy-of-a-qr-code/ [2] http://www.qrcode.com/advantages/ [3] http://www.beqrious.com/ [4] http://www.ibm.com/developerworks/library/os-objorient/ [5] http://www.fastcompany.com/1585822/business-card-just-scanmy-qr-code [6] QR Codes & Mobile Marketing for the Small Business Owner By Michael Weir [7] Scan-me Everybodys guide to the magical world of QR Code By Mick Winter [8] QR Code: High-impact Strategies - What You Need to KnowBy Kevin Roebuck

37

You might also like