将字节转换为图像时出错"参数无效"

Uma*_*lam 13 .net c# memorystream image bytearray

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

参数无效

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

Image arr1 = byteArrayToImage(Bytess);
Run Code Online (Sandbox Code Playgroud)

这是功能.

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);
          }
    }
Run Code Online (Sandbox Code Playgroud)

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

您的回答将不胜感激.

谢谢

san*_*mar 10

试试这个

    public Image byteArrayToImage(byte[] byteArrayIn)
    {

        System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
        Image img = (Image)converter.ConvertFrom(byteArrayIn);

        return img;
    }
Run Code Online (Sandbox Code Playgroud)

  • 不,它不起作用。我的字节是 1120135 (2认同)

Ert*_*yui 5

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

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;
Run Code Online (Sandbox Code Playgroud)