JSON如何序列图片
图片采用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如何序列图片的更多相关文章
- kbmmw 与extjs 通过JSON Base64 显示图片
delphi 官网上开始也来越多的介绍delphi与extjs 结合的例子,今天我就把官方的例子翻版一下. 官方使用C++builder 和webbroker 实现. 我使用kbmmw 来实现一下. ...
- python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
1. 场景描述 一直做java,因项目原因,需要封装一些经典的算法到平台上去,就一边学习python,一边网上寻找经典算法代码,今天介绍下经典的K-means聚类算法,算法原理就不介绍了,只从代码层面 ...
- Newtonsoft.Json.dll序列化为json,null值自动过滤
var jSetting = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore}; var json = ...
- python通过json读写序列类型的数据文件
import json class a: def writeReadJson(self): list2 =['] with open("test.txt",'w') as f: j ...
- 关于如何通过json更改背景图片
今天遇到的问题,突然脑子就不灵光了,平时我们在用jquery更改元素css样式,特别是background的时候,通常用的代码 $("body").css("backgr ...
- c# 解析百度图片搜索结果json中objURL图片原始地址
// http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&fp=result& ...
- C# Newtonsoft.Json不序列字段
[JsonObject(MemberSerialization.OptOut)] public class employeePersonalForm { [JsonIgnore] public str ...
- 大json直接序列化成dataset
rtnDs= JsonConvert.DeserializeObject<DataSet>(strBuff);
- 用 opencv和numpy进行图片和字符串互转,并保存至 json
用 opencv和numpy进行图片和字符串互转,并保存至 json 转至 https://zhuanlan.zhihu.com/p/27349847 受 用 base64 进行图片和字符串互转,并保 ...
随机推荐
- FireMonkey 平台初探
最为第一个本地化跨平台的框架:FireMonkey需要处理以及融合不同平台的技术非常之多,所以目前的测试仅仅在于表面现象,至于效率问题还不得而知. 从一个程序员的角度来看这个框架,我觉得有以下这些方面 ...
- 51nod1125 交换机器的最小代价
跟做过的bzoj一道置换群的题几乎一样,只是数据范围大了点,那么就用map就好了... #include<cstdio> #include<cstring> #include& ...
- mysql-主从复制(二)
1)主服务器上开启binlog服务器 log-bin=mysql-bin 2)用户授权(并不是privileges授权!!!!),正确有从服务器授权如下 grant replication slave ...
- BZOJ 1078 斜堆
感谢MATO大神的博客 http://www.cppblog.com/MatoNo1/archive/2013/03/03/192131.html 注意细节. #include<iostream ...
- MySQL常用的操作整理
MySQL是一个十分轻便的dbms,轻便.灵活,更适用于中小型数据的存储与架构.MySQL被数以万计的网站采用,从5版本以后,陆续支持了游标.触发器.事务.存储过程等高级应用,这也给MySQL的易用性 ...
- Android 高仿豌豆荚 一键安装app 功能 实现
以往我们那些应用市场 帮我们安装app的时候 我们都得点确定,当然你如果 root 以后 不用点确定 也能自动安装了,后来豌豆荚 推出了一个功能 非root的手机也能不点确定 直接帮你安装好.(如果 ...
- [Everyday Mathematics]20150227
(Marden's Theorem) 设 $p(z)$ 是三次复系数多项式, 其三个根 $z_1,z_2,z_3$ 不共线; 再设 $T$ 是以 $z_1,z_2,z_3$ 为顶点的三角形. 则存在唯 ...
- 打造万能的ListView GridView 适配器
转载:http://blog.csdn.net/lmj623565791/article/details/38902805/ 通用的ViewHolder 首先分析下ViewHolder的作用,通过co ...
- 错误记录:html隐藏域的值存字符串时出错
问题 webform在后台给前台传值. <input type="hidden" value="<%=userType %>" id=&qu ...
- windows下ncl生成tiff图(案例)
一:安装软件和准备数据 1.需要安装Vapor(注意安装路径不要存在空格) 注:版本2.4.2及以后 2.安装NCL,方法见http://www.cnblogs.com/striver-zhu/p/4 ...