Получение строки ASCII, преобразованной и показанной на Picturebox - PullRequest
0 голосов
/ 16 января 2019

Я использую эту панель подписи Topaz, и она сохраняет строку ASCII после окончательной подписи в базе данных.Теперь у меня есть проблема, я хочу получить строку ASCII из базы данных и преобразовать ее в изображение и показать в элементе управления Picturebox У меня есть этот код ниже:

private void button4_Click(object sender, EventArgs e)
{
    string constring = @"Data Source=DESKTOP-FJBB72F\SQLEXPRESS;Initial Catalog=SignatureCapture;Integrated Security=True";
    using (SqlConnection con = new SqlConnection(constring))
    {
        con.Open();
        string sql = "select * from SignTable where id =@id";
        using (SqlCommand cm = new SqlCommand(sql, con))
        {
            cm.Parameters.AddWithValue("@id",textBox1.Text);
            try
            {
                using (SqlDataReader rd = cm.ExecuteReader())
                {
                    if (rd.Read())
                    {
                        // byte[] imgData = (byte[])rd["signature"];
                        byte[] imgData = Convert.FromBase64String(rd["signature"].ToString());
                        using (MemoryStream ms = new MemoryStream(imgData))
                        {
                            System.Drawing.Image image = Image.FromStream(ms);
                            //image.Save(@"C:\Users\Administrator\Desktop\UserPhoto.jpg");
                            pictureBox1.Image = image;
                        }
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error: "+ex.ToString());
            }
        }
    }
}

И я получаю исключение в этой строкечто выглядит следующим образом:

enter image description here

Вопрос в том, как я могу получить ASCII и отобразить на картинке?

Редактировать

Показывает ошибку в этом коде .. В этой строке:

private void button4_Click(object sender, EventArgs e)
{
    string constring = @"Data Source=DESKTOP-FJBB72F\SQLEXPRESS;Initial Catalog=SignatureCapture;Integrated Security=True";
    using (SqlConnection con = new SqlConnection(constring))
    {
        con.Open();
        string sql = "select * from SignTable where id =@id";
        using (SqlCommand cm = new SqlCommand(sql, con))
        {
            cm.Parameters.AddWithValue("@id",textBox1.Text);
            try
            {
                using (SqlDataReader rd = cm.ExecuteReader())
                {
                    if (rd.Read())
                    {
                        // byte[] imgData = (byte[])rd["signature"];
                        //byte[] imgData = Convert.FromBase64String(rd["signature"].ToString());
                        byte[]imgData = Encoding.ASCII.GetBytes(rd["signature"].ToString());
                        using (MemoryStream ms = new MemoryStream(imgData))
                        {
                            System.Drawing.Image image = Image.FromStream(ms); //  Error shows at this Line <------
                            //image.Save(@"C:\Users\Administrator\Desktop\UserPhoto.jpg");
                            pictureBox1.Image = image;
                        }
                    }
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error: "+ex.ToString());
            }
        }
    }
}
...