请问字符串怎么转换成Byte[]呢?

zzutnicholas 2009-10-15 07:57:10
数据是XML,Image是jpg图片的二进制

<Image><![CDATA["/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQ.......

按照网上说的,但是出错了
var img = doc.Root.Descendants("Image").Single().Value;
var tmp = System.Text.Encoding.UTF8.GetBytes(img);
var str = new MemoryStream(tmp);
var pic = Image.FromStream(str);//报错
str.Close();
var dlg = new Form1();
dlg.pictureBox1.Image = pic;
dlg.ShowDialog();

请问是不是转换出了问题
谢谢
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-10-15
  • 打赏
  • 举报
回复
XmlDocument doc = new XmlDocument();
doc.Load("a.xml");
string s = doc.DocumentElement.SelectSingleNode("Image").InnerText;
byte[] b = Convert.FromBase64String(s);
MemoryStream stream = new MemoryStream(b);
Bitmap bitmap = new Bitmap(stream);

this.pictureBox1.Image = bitmap;
fflyn 2009-10-15
  • 打赏
  • 举报
回复
不是 是编码方式
["/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQ.......
是StringBase64的编码 用于传输2进制的 SMTP HTTP SOAP 经常采用这种方式
please code by .net

string img = doc.Root.Descendants("Image").Single().Value; //you can refrece by javascrip
byte[] data = Convert.FromBase64String(img);
MemoryStream ms = new MemoryStream(data);
//...you can save ms to image file

wanbotang 2009-10-15
  • 打赏
  • 举报
回复
微软的例子是这样写的:
internal static Bitmap DeserializeFromBase64(string data)
{
// Decode the string and create a memory stream
// on the decoded string data.
MemoryStream stream =
new MemoryStream(Convert.FromBase64String(data));

// Create a new bitmap from the stream.
Bitmap b = new Bitmap(stream);

return b;
}

110,534

社区成员

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

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

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