Image.FromStream() method returns Invalid Argument exception

前端 未结 10 2506
臣服心动
臣服心动 2020-11-29 09:18

I am capturing images from a smart camera imager and receiving the byte array from the camera through socket programming (.NET application is the client, camera is the serve

10条回答
  •  情书的邮戳
    2020-11-29 10:02

    After load from DataBase byteArray has more byte than one image. In my case it was 82.

    MemoryStream ms = new MemoryStream();
    ms.Write(byteArray, 82, byteArray.Length - 82);
    Image image = Image.FromStream(ms);
    

    And for save in the DB I insert 82 byte to begin stream. Properties.Resources.ImgForDB - it is binary file that contain those 82 byte. (I get it next path - Load Image from DB to MemoryStream and save to binary file first 82 byte. You can take it here - https://yadi.sk/d/bFVQk_tdEXUd-A)

            MemoryStream temp = new MemoryStream();
            MemoryStream ms = new MemoryStream();
            OleDbCommand cmd;
            if (path != "")
            {
                Image.FromFile(path).Save(temp, System.Drawing.Imaging.ImageFormat.Bmp);
                ms.Write(Properties.Resources.ImgForDB, 0, Properties.Resources.ImgForDB.Length);
                ms.Write(temp.ToArray(), 0, temp.ToArray().Length);
    
            cmd = new OleDbCommand("insert into Someone (first, Second, Third) values (@a,@b,@c)", connP);
            cmd.Parameters.AddWithValue("@a", fio);
            cmd.Parameters.AddWithValue("@b", post);
            cmd.Parameters.AddWithValue("@c", ms.ToArray());
            cmd.ExecuteNonQuery();
    

提交回复
热议问题