尝试将字节数组转换为映像时,参数无效

时间:2018-05-28 17:25:43

标签: c# arrays winforms

我有一个程序,它从xlsx文件中获取数据并将它们放到dataGridView中。然后我试图将此数据(从dataGridView)转换为字节数组,以便稍后将其从Bitmap放置到PictureBox。 所以我有datagridView(对象) - >字节数组 - >位图 - >图片。

问题出现了,在这一步,我将字节数组转换为Image。

我已经尝试了很多方法来修复它,正如我在Internet上找到的那样(特别是对MemoryStream和ImageConverter的修改),但没有人没有帮助。 Debuger说数据还可以(如下图所示)。可能有另一种方法将其转换为图像?

这是我的dataGridView
This is my dataGridView

来自我阵列的数据
data from my array

    private void buttonShowImage_Click(object sender, EventArgs e)
    {

        int size = (dataGridView1.RowCount) * (dataGridView1.ColumnCount-1);
        byte[] arrOfValues = new byte[size];
        PictureBox picBox = new PictureBox();


        int k = 0;
        for(int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
            {
                arrOfValues[k++] = Convert.ToByte(dataGridView1[i, j].Value);
            }

        }

        ImageConverter ic = new ImageConverter();

        Image img = (Image)ic.ConvertFrom(arrOfValues);  // here is the problem 'data is not valid' 

        Bitmap bmp = new Bitmap(img);

        picBox.SizeMode = PictureBoxSizeMode.Zoom;

        picBox.Image = bmp;


        picBox.Show();

    }

0 个答案:

没有答案