如何使用C#将原始数据转换为JPEG文件

时间:2017-11-06 12:55:34

标签: c# image binary file-conversion

我有这样一个字符串:

string x = 0x424D3630090000000000360010028000000C00100200011111111111333333333000000C40E0000C40E000000088888888BBBBCC262281FF231F7EFF251D81FF....."

我被告知将此字符串转换为JPEG图像,我不确定此字符串的实际数据类型,我不知道如何将其转换为JPEG。你能给我至少一些提示吗?提前谢谢。

编辑:

我将字符串转换为字节数组,如下所示:

 byte[] bytes = Convert.FromBase64String("0x424D363009..");

我得到了这个例外:

  

Base-64字符数组或字符串的长度无效。

1 个答案:

答案 0 :(得分:3)

UPDATE:

还有一个可能的解决方案,您可以使用以下方法从该HEX字符串中获取byte[]

string x = GetYouHexString();
x = x.Remove(0,2);
string[] stringArr = Enumerable.Range(0, x.Length / 2)
                               .Select(i => x.Substring(i * 2, 2))
                               .ToArray();
byte[] byteArr = Array.ConvertAll(stringArr , b => Convert.ToByte(b, 16));

然后使用MemoryStreamImage保存:

using(Image image = Image.FromStream(new MemoryStream(byteArr)))
{
    image.Save("output.jpg", ImageFormat.Jpeg);
}