如何将UltraQRCodeBarcode Infragistics WinForms控件转换为图像?

时间:2017-04-05 21:12:22

标签: c# winforms infragistics

我有一个完美生成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;
}

1 个答案:

答案 0 :(得分:1)

UltraQRCodeBarcode具有SaveTo方法。此方法有几个重载,允许您将QR码保存到图像或内存流。在你的情况下,我将创建一个内存流,然后将此流转换为字节数组,如下所示:

byte[] data;
using(MemoryStream ms = new MemoryStream())
{
    this.ultraQRCodeBarcode1.SaveTo(ms, ImageFormat.Png);
    byte[] data = ms.ToArray();
}