【问题标题】:Loading image in picturebox from database从数据库中加载图片框中的图像
【发布时间】:2012-10-31 04:33:53
【问题描述】:

我已尝试使用以下代码从数据库加载图片框中的图像。但每次,我都会收到类似“paramater is not valid”的错误。

buttonSave()
            {
                .......
                .......
                img = Image.FromFile(strFileName);
                byte[] byteImg = ImageToByteArray(img);
                objEmp.Picture = byteImg;
                .......
                .......
            } 

public byte[] ImageToByteArray(Image img)
        {
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            return ms.ToArray();
        }  

Display()
       { 
           .......
           .......
           Byte[] bytePicData = (Byte[])dt.Rows[0]["PICTURE"];                
           MemoryStream stmPicData = new MemoryStream(bytePicData);
           PicBox.Image = Bitmap.FromStream(stmPicData);} 
           .......
           .......
      }

【问题讨论】:

    标签: c# winforms picturebox windows-applications


    【解决方案1】:

    图像已损坏。错误来自 FromStream 方法。您可以写入磁盘并查看是否可以在图像视图中打开它。如果没有,请检查您将其插入数据库的代码

    Byte[] bytePicData = (Byte[])dt.Rows[0]["PICTURE"];
    // Save
    File.WriteAllBytes("out.bmp", bytePicData);
    
    MemoryStream stmPicData = new MemoryStream(bytePicData);
    PicBox.Image = BitMap.FromStream(stmPicData);
    

    【讨论】:

    • File.WriteAllBytes("out.bmp", bytePicData);还添加了声明
    • 你能在 mspaint 或其他图像查看器中打开 out.bmp 吗?可能是图像被错误地保存到数据库。您的代码看起来不错
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多