Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示
在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 并用delphi调用
的方法:
1.c#的webservice现实见
http://www.greensoftcode.net/techntxt/20127118441582992373 之前的文章。
2.在客户端用delphi显示 发现asp.net xml形式输出的图片是base64字符串形式。用delphi解析很困难
所以这里我先用c#解析读取图片并显示 然后在用delphi显示主要看看显示的xml图片是否可以显示。
c#的代码是:
private void button1_Click(object sender, System.EventArgs e)
{
long len;
byte[] byt = new byte[] { 0x00 };
//string base64String=Convert.ToBase64String(this.textBox1.Text);
byt=Convert.FromBase64String(this.textBox1.Text);
string str = System.Text.Encoding.Default.GetString( byt );
System.IO.MemoryStream ms=new System.IO.MemoryStream();
ms.Write(byt, 0, byt.Length) ;
ms.Seek(0, System.IO.SeekOrigin.Begin) ;
len=ms.Length;
pictureBox1.Image = Image.FromStream(ms) ;
}
图片显示没有问题!这就证明啦asp.net webservice 以XML字符串显示图片没有问题 ,只要delphi的
算法正确就可以。
3.下面用delphi实现说实话我研究啦很长时间终于研究出来啦 结果见:
先引用 EncdDecd单元 EncdDecd单元是delphi自带的
uses EncdDecd
var ss:TStringStream;
ms:TMemoryStream;
JpgFile:TjpegImage ;
begin
ss:=TStringStream.Create(Memo1.Text);
ms:=TMemoryStream.Create;
DecodeStream(ss,ms);
ms.Position:=0;
JpgFile:=TjpegImage.Create ;
JpgFile.LoadFromStream(ms);
ss.Free;
ms.Free;
Image1.Picture.Bitmap.Assign(JpgFile);
end;
就这样就可以读出c#的webservice 的图片文件