首页 > Web开发 > 详细

JSON如何序列图片

时间:2015-03-25 23:24:09      阅读:515      评论:0      收藏:0      [点我收藏+]

图片采用JSON格式传输的话,需要把图片转成Base64格式。

首先把图片转成流:
Image1.Picture.Graphic.SaveToStream(ss);
然后编码成base64格式的:
EncodeStream(ss, ss1);
注意ss和ss1的定义:
var
ss: TMemoryStream;
ss1,ss2 : TStringStream;
EncodeStream的调用需要引用EncdDecd.pas单元。

然后把流转成字符串
var
sdata : string;
begin
...
sData := ss1.DataString;
...
end;

再把该字符串包装到JSON串:
var
aqjson : TQJSON;
begin
aqjson := TQJSON.Create;
aqjson.Parse(memo3.Lines.Text);
...
aqjson.AddArray(‘pic‘).Add.AsString :=sdata;
...
end;

这样图片就打包到JSON里面了,收到以后,再反过来解析即可:
ss2 := TStringStream.Create(aqjson.ItemByName(‘pic‘).Items[0].value);
DecodeStream(ss2,ss);//将base64字符流还原为内存流
ss.Position := 0; // 必须
Image2.Picture.Graphic.LoadFromStream(ss);

JSON如何序列图片

原文:http://www.cnblogs.com/hnxxcxg/p/4367287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!