Reputation: 72672
I am writing an application which is going to generate qr codes.
Most of the programming logic is implemented.
The next step in the process would be to generate the qr code image.
The most simple qr code is based on a 21x21 grid in which I have to make a tile (1x1) either black / white.
For more info: http://www.thonky.com/qr-code-tutorial/part-3-mask-pattern/
What would be the best approach for this.
I need to:
Show a preview of the code in the application
Give the user the option to save the qr code as an image (.jpg I think).
I.e. how to make an image which can be build like above and how to save it?
Upvotes: 5
Views: 29511
Reputation: 1846
In order to create the QR code image, you will need to generate a bitmap in your application. Sample code to do this is:
'Create a new QR bitmap image
Dim bmp As New Bitmap(21, 21)
'Get the graphics object to manipulate the bitmap
Dim gr As Graphics = Graphics.FromImage(bmp)
'Set the background of the bitmap to white
gr.FillRectangle(Brushes.White, 0, 0, 21, 21)
'Draw position detection patterns
'Top Left
gr.DrawRectangle(Pens.Black, 0, 0, 6, 6)
gr.FillRectangle(Brushes.Black, 2, 2, 3, 3)
'Top Right
gr.DrawRectangle(Pens.Black, 14, 0, 6, 6)
gr.FillRectangle(Brushes.Black, 2, 16, 3, 3)
'Bottom Left
gr.DrawRectangle(Pens.Black, 0, 14, 6, 6)
gr.FillRectangle(Brushes.Black, 16, 2, 3, 3)
'*** Drawing pixels is done off the bitmap object, not the graphics object
'Arbitrary black pixel
bmp.SetPixel(8, 14, Color.Black)
'Top timing pattern
bmp.SetPixel(8, 6, Color.Black)
bmp.SetPixel(10, 6, Color.Black)
bmp.SetPixel(12, 6, Color.Black)
'Left timing pattern
bmp.SetPixel(6, 8, Color.Black)
bmp.SetPixel(6, 10, Color.Black)
bmp.SetPixel(6, 12, Color.Black)
'Add code here to set the rest of the pixels as needed
In order to display the image to the end user you can use a PictureBox control:
Me.PictureBox1.Image = bmp
And finally, in order to save the bitmap you can call the save function on it:
bmp.Save("C:\QR.jpg", Drawing.Imaging.ImageFormat.Jpeg)
Upvotes: 4
Reputation: 15245
I would personally try to use the Google charts servic in order to generate the qr code image. Easy and simple. Here is an example image from Google's site.
https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Hello%20world&choe=UTF-8
Check out the docs here: http://code.google.com/apis/chart/infographics/docs/qr_codes.html
Upvotes: 7