如何将十六进制文本文件转换为jpeg

时间:2014-10-29 12:32:31

标签: jpeg decoding

我收到了一个包含十六进制数据的文本文件,我知道它形成了一个jpeg图像。以下是格式示例:

FF D8 FF E0 00 10 4A 46 49 46 00 01 02 00 00 64 00 64 00 00 FF E1 00 B8 45 78 69 00 00 4D

这只是一个片段,但你明白了。

有谁知道如何将其转换回原来的jpeg?

1 个答案:

答案 0 :(得分:0)

要将十六进制字符串转换为字节,请使用带有基本16参数的Convert.ToByte

要将字节数组转换为Bitmap,请将其放入Stream并使用Bitmap(Stream)构造函数:

using System.IO;
//..

string hexstring = File.ReadAllText(yourInputFile);
byte[] bytes = new byte[hexstring.Length / 2];
for (int i = 0; i < hexstring.Length; i += 2)
     bytes[i / 2] = Convert.ToByte( hexstring.Substring(i, 2), 16);
using (MemoryStream ms = new MemoryStream(bytes))
{
   Bitmap bmp = new Bitmap(ms);
   // now you can do this: 
   bmp.Save(yourOutputfile, System.Drawing.Imaging.ImageFormat.Jpeg);
   bmp.Dispose();   // dispose of the Bitmap when you are done with it!
   // or that:
   pictureBox1.Image = bmp;  // Don't dispose as long as the PictureBox needs it!
}

我想有更多的LINQish方式,但只要它有效..