生成QR码

时间:2011-08-20 20:15:11

标签: vb.net image qr-code

我正在编写一个生成qr代码的应用程序。

大多数编程逻辑都已实现。

该过程的下一步是生成qr代码图像。

最简单的qr代码基于21x21网格,我必须在其中制作一块(1x1)黑色/白色。

了解更多信息:http://www.thonky.com/qr-code-tutorial/part-3-mask-pattern/

最好的方法是什么。

我需要:

  1. 显示应用程序中代码的预览
  2. 为用户提供将qr代码保存为图像的选项(我认为是.jpg)。
  3. 即。如何制作一个可以像上面那样构建的图像以及如何保存它?

    感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

我个人会尝试使用Google图表服务来生成qr代码图像。简单易用。以下是Google网站的示例图片。

https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Hello%20world&choe=UTF-8

在这里查看文档: http://code.google.com/apis/chart/infographics/docs/qr_codes.html

答案 1 :(得分:4)

要创建QR代码图像,您需要在应用程序中生成位图。执行此操作的示例代码是:

'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

为了向最终用户显示图像,您可以使用PictureBox控件:

Me.PictureBox1.Image = bmp

最后,为了保存位图,您可以在其上调用保存功能:

bmp.Save("C:\QR.jpg", Drawing.Imaging.ImageFormat.Jpeg)