作者itisover (什麽都不懂的人真幸福...)
看板C_Sharp
标题[问题] 将一整串数字矩阵写到TXT档里
时间Thu Jul 5 21:39:18 2012
大家好
最近在练习将bmp档里的R、G、B pixel分别存到矩阵里
接着再存到txt里
以下是我的程式
System.IO.StreamWriter R_Data = new
System.IO.StreamWriter("D:\\R_Data.txt", false, Encoding.BigEndianUnicode);
System.IO.StreamWriter G_Data = new
System.IO.StreamWriter("D:\\G_Data.txt", false, Encoding.BigEndianUnicode);
System.IO.StreamWriter B_Data = new
System.IO.StreamWriter("D:\\B_Data.txt", false, Encoding.BigEndianUnicode);
byte[] pixel_R = new byte[100]; <-假设都是255
byte[] pixel_G = new byte[100]; <-假设都是255
byte[] pixel_B = new byte[100]; <-假设都是255
//接着将byte矩阵转为字串矩阵,combine後就写入txt档里
B_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_B, id =>
Char.ConvertFromUtf32(id))));
G_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_G, id =>
Char.ConvertFromUtf32(id))));
R_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_R, id =>
Char.ConvertFromUtf32(id))));
R_Data.Close();
G_Data.Close();
B_Data.Close();
原本预期在ultraedit里会看到如下结果
FF FF FF FF FF ......
FF FF FF FF FF......
不过实际上却是
00 FF 00 FF 00 FF .....
00 FF 00 FF 00 FF .....
我有怀疑是StreamWriter里面的编码造成的
因此我有试过其他种编码
不过都是错误的
想请问大家不知道是哪边想错了
或是说还有哪几种改法呢??
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.160.153.142
1F:推 TeemingVoid:System.IO.FileStream R_Data = 07/05 21:58
2F:→ TeemingVoid: new System.IO.FileStream(@"c:\temp\test_r.txt", 07/05 21:59
3F:→ TeemingVoid: System.IO.FileMode.Create); 07/05 21:59
4F:→ TeemingVoid:byte[] pixel_R = new byte[100]; // <-假设都是255 07/05 21:59
5F:→ TeemingVoid:R_Data.Write(pixel_R, 0, pixel_R.Length); 07/05 21:59
6F:→ TeemingVoid:R_Data.Close(); 07/05 21:59
7F:→ TeemingVoid:直接写出阵列即可,不必将位元阵列转成Unicode字串。 07/05 22:01
8F:→ itisover:感谢 因为之前都是使用writeline方式 07/05 22:59
9F:→ itisover:然後今天花了一整天在对抗format的问题 07/05 23:00
10F:→ itisover:OK了,真的非常感谢 07/06 18:59