我有一个完美生成QR码的QR控件,当我用手机扫描时,它完美无缺。但是我无法将其转换为图像,因此我可以将其保存到数据库中。我查看了他们的网站,我找不到任何东西,他们所拥有的只是WPF或Web上没有WinForms。 以下是我生成QR码的方法
private void btnGenerate_Click(object sender, EventArgs e)
{
string data = string.Empty;
var fullName = txtFirstName + " " + txtMiddleName + " " + txtLastName;
if (!string.IsNullOrEmpty(txtLicenceNumber.Text))
{
data = fullName;
data += ", " + Environment.NewLine + txtDistrict.Text;
data += ", " + Environment.NewLine + txtLicenceNumber.Text;
data += ", " + Environment.NewLine + txtRegistrationCode;
}
ultraQRCodeBarcode1.Data = data;
}
这是我的保存方法我试图将其转换为字节代码并保存 但是我没有成功,在这一个中没有像Image这样的属性。
user.QrCode = ImageToByteArray(ultraQRCodeBarcode1.);
图像转换器
private byte[] ImageToByteArray(string imagePath)
{
byte[] data = null;
var fileInfo = new FileInfo(imagePath);
long numBytes = fileInfo.Length;
var fileStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
var binaryReader = new BinaryReader(fileStream);
data = binaryReader.ReadBytes((int)numBytes);
return data;
}
答案 0 :(得分:1)
UltraQRCodeBarcode具有SaveTo方法。此方法有几个重载,允许您将QR码保存到图像或内存流。在你的情况下,我将创建一个内存流,然后将此流转换为字节数组,如下所示:
byte[] data;
using(MemoryStream ms = new MemoryStream())
{
this.ultraQRCodeBarcode1.SaveTo(ms, ImageFormat.Png);
byte[] data = ms.ToArray();
}