繁体   English   中英

尝试将字节转换为图像时收到错误“参数无效”

[英]I get an error “Parameter is not valid” when trying to convert byte to image

这是我的代码:

string photo = "somedata";
byte[] byt = System.Text.Encoding.UTF8.GetBytes(photo);

string strModified = Convert.ToBase64String(byt);
byte[] photoData = Convert.FromBase64String(strModified);
Image img = cnvrtToImg(photoData);

public Image cnvrtToImg(byte[] byteArrayIn)
{
     using (MemoryStream mStream = new MemoryStream(byteArrayIn))
     {
          return Image.FromStream(mStream);
     }
}

调用方法cnvrtToImg ,出现错误

参数无效

请给我一个解决方案

我认为System.Text.Encoding.UTF8不是用于图像数据,而是用于文本,而不是二进制数据。 UTF8只是不能执行某些二进制序列。 如果需要将二进制转换为文本,则选择Base64。 我对此进行测试,并确认cnvrtToImg是正确的:

class Program
{
    public static Image cnvrtToImg(byte[] byteArrayIn)
    {
        using (MemoryStream mStream = new MemoryStream(byteArrayIn))
        {
            return Image.FromStream(mStream);
        }
    }
    static void Main(string[] args)
    {
        using (var file = File.Open(@"D:\0.jpg", FileMode.Open))
        {
            var buffer = new byte[file.Length];
            file.Read(buffer, 0, (int) file.Length);
            cnvrtToImg(buffer);
        }
    }
}

//finish

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM