将字节转换为图像时出现错误“参数无效”

我将字节转换为图像但我收到错误

参数无效

我正在粘贴我的代码。 请检查代码,并建议我做对或错。

Image arr1 = byteArrayToImage(Bytess); 

这是function。

 public static Image byteArrayToImage(byte[] byteArrayIn) { if (null == byteArrayIn || byteArrayIn.Length == 0) return null; MemoryStream ms = new MemoryStream(byteArrayIn); try { Process currentProcess1 = Process.GetCurrentProcess(); Image returnImage = Image.FromStream(ms); return returnImage; } catch (Exception ex) { MessageBox.Show(ex.Message); } } 

我应用了许多技术和解决方案,但它对我不起作用

你的回答将不胜感激。

谢谢

试试这个

  public Image byteArrayToImage(byte[] byteArrayIn) { System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter(); Image img = (Image)converter.ConvertFrom(byteArrayIn); return img; } 

在尝试了很多东西后,我发现了一种可以控制更多的方法。 在此示例中,您可以指定像素格式并将字节复制到位图。

 byte[] buffer = GetImageBytes(); var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); var bitmap_data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); Marshal.Copy(buffer, 0, bitmap_data.Scan0, buffer.Length); bitmap.UnlockBits(bitmap_data); var result = bitmap as Image; 

试试这个,

 public Image byteArrayToImage(byte[] byteArrayIn) { Image returnImage = null; using (MemoryStream ms = new MemoryStream(byteArrayIn)) { returnImage = Image.FromStream(ms); } return returnImage; } 
  cmd.CommandText="SELECT * FROM `form_backimg` WHERE ACTIVE=1"; MySqlDataReader reader6= cmd.ExecuteReader(); if(reader6.Read()) { code4 = (byte[])reader6["BACK_IMG"]; //BLOB FIELD NAME BACK_IMG } reader6.Close(); MemoryStream stream = new MemoryStream(code4); //code4 is a public byte[] defined on top pictureBox3.Image = Image.FromStream(stream); 

问题是因为您从数据库中错误地引入了它。 尝试更改您的代码,如下所示:

 while (registry.Read()) { byte[] image = (byte[])registry["Image"]; } 

在我的情况下,我得到了错误,因为我的base64字符串在调用Image.FromStream之前编码错误。 这最终对我有用:

 byte[] bytes = System.Convert.FromBase64String(base64ImageString); using (MemoryStream ms = new MemoryStream(bytes)) { var image = Image.FromStream(ms); image.Save(filePath, System.Drawing.Imaging.ImageFormat.Png); }