将16进制数据转成图片形式

Yang_chenfei 2013-04-24 01:55:38
大家好,有一个问题请教各位了。

客户给了一个CSV文件,文件中存储了很多的16进制数据,例如这样的:
0xFFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232

这样一段数据代表了一个图片。现在需要根据这个16进制数据转成图片。
我是这样来操作的:
//str代表从CSV文件中读取的一条记录。
string str = "0xFFD8FFE000104A46494600010101006000600000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F17";
char[] chars = str.ToCharArray();

byte[] bytes = new byte[chars.Length];
Encoder e = Encoding.UTF8.GetEncoder();
e.GetBytes(chars, 0, chars.Length, bytes, 0, true);

FileStream fs = new FileStream("D:\\pic.png", FileMode.Create);
fs.Write(bytes, 0, bytes.Length);
fs.Close();

这样转出来的图片不行,看不了。
谢谢大家了。
...全文
726 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysjydss 2013-04-24
  • 打赏
  • 举报
回复
private void button4_Click(object sender, EventArgs e) {//16进制转图片 FileStream fs = new FileStream("D:\\cc.jpg", FileMode.Create, FileAccess.Write); BinaryWriter bw = new BinaryWriter(fs); StreamReader sr = new StreamReader("D:\\bb11.txt"); while (sr.Peek() != -1) { string tempStr = sr.ReadLine(); byte tempByte = Convert.ToByte(tempStr, 16); bw.Write(tempByte); } fs.Close(); bw.Close(); sr.Close(); } private void button5_Click(object sender, EventArgs e) {//图片转16进制 FileStream fs = new FileStream("d:\\1.jpg", FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); StreamWriter sw = new StreamWriter("d:\\bb11.txt"); int length = (int)fs.Length; while (length > 0) { byte tempByte = br.ReadByte(); string tempStr = Convert.ToString(tempByte, 16); // stem = stem + tempStr.ToString(); sw.WriteLine(tempStr); length--; } fs.Close(); br.Close(); sw.Close(); } 这段代码我调试通过了,楼主看看吧,或许对你有用。 应该是楼主的字符串不行,应该用算法来解析,换成16进制,你把pic.png换成pic.txt 你看看,你会发现,写入的就是字符串
ysjydss 2013-04-24
  • 打赏
  • 举报
回复
楼上是把chars写进pic.png文件里,没有16进制转图片的过程啊

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧