http://www.cnblogs.com/hnxxcxg/p/4367287.html
图片采用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);