C#无法将字节转换为图像

时间:2016-09-15 05:10:42

标签: c#

代码适用于我观看的教程,但不适用于我的教程。 这是我的代码:

private void AddButton()
{        
    foreach (TblProductType category in cse.TblProductType)
    {
        Button btn = new Button();
        btn.Text = category.Description;
        btn.Size = new Size(100, 100);
        btn.ForeColor = Color.White;

        byte [] dataCategory1 = category.Productimage;
        MemoryStream stm = new MemoryStream(dataCategory1);
        btn.Image = Image.FromStream(stm);
        btn.Image = ResizeImage(btn.Image, btn.Size);

        btn.Tag = category.ProductTypes;
        flow1.Controls.Add(btn);
        this.Controls.Add(flow1);
        btn.Click += btn_Click
    }
} 

2 个答案:

答案 0 :(得分:0)

我们可能需要更多周围的代码,或者更多信息来确定问题的确切性质,但我怀疑这个问题的最可能原因是ResizeImage中发生的任何事情。

这是一个调整[ { category: "NWSC Banepa", value: 32.91 }, { category: "NWSC Bhadrapur", value: 54.83 }, { category: "NWSC Biratnagar", value: 24.81 }, { category: "NWSC Dharan", value: 98.41 }, { category: "NWSC Gaur", value: 10.69 }, { category: "NWSC Gaushala", value: 93.84 } ] 大小的函数,也许试一试,看看它是否解决了你的问题?

System.Drawing.Image

答案 1 :(得分:0)

在这里,试试这个: 在我的问题中,我将我的图表保存到memoryStream ..然后将该memoryStream保存为字节数组,然后将字节数组保存到图像中。它对我有用。

using (MemoryStream memoryStream = new MemoryStream())
        {
            //saved my chart to an memoryStream
            Chart2.SaveImage(memoryStream, ChartImageFormat.Png);

            //saved memorystream to byte array
            byte[] byteArrayIn = memoryStream.ToArray();

            //saving byte back to an Image
            Image image1 = new Image();
            image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteArrayIn, 0, byteArrayIn.Length);

            newChart.Controls.Add(image1);
            divRadarChart.Visible = false;
        }