页面布局:
具体代码如下:
//生成二维码
private void button2_Click(object sender, EventArgs e)
{
lbshow.Text = "";
try
{
//构造二维码写码器
MultiFormatWriter mutiWriter = new com.google.zxing.MultiFormatWriter();
ByteMatrix bm = mutiWriter.encode(txtMsg.Text, com.google.zxing.BarcodeFormat.QR_CODE, 300, 300);
Bitmap img = bm.ToBitmap();
pictureBox1.Image = img;
//自动保存图片到当前目录
string filename = System.Environment.CurrentDirectory + "\\QR" + DateTime.Now.Ticks.ToString() + ".jpg";
img.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
lbshow.Text = "图片已保存到:" + filename;
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
string opFilePath = "";
//打开文件
private void button4_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "图片文件|*.bmp;*.jpg;*.png;*.ico";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
opFilePath = openFileDialog1.FileName;
pictureBox2.ImageLocation = opFilePath;
}
}
//解码操作
private void button3_Click(object sender, EventArgs e)
{
//构建解码器
MultiFormatReader mutiReader = new com.google.zxing.MultiFormatReader();
Bitmap img = (Bitmap)Bitmap.FromFile(opFilePath);
if (img == null)
return;
LuminanceSource ls = new RGBLuminanceSource(img, img.Width, img.Height);
BinaryBitmap bb = new BinaryBitmap(new com.google.zxing.common.HybridBinarizer(ls));
//注意 必须是Utf-8编码
Hashtable hints = new Hashtable();
hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
Result r = mutiReader.decode(bb, hints);
txtmsg2.Text = r.Text;
lbshow.Text = "解码成功!";
}
效果图如下: