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 进行图片和字符串互转,并保 ...
随机推荐
- 51nod1244 莫比乌斯函数之和
推公式.f[n]=1-∑f[n/i](i=2...n).然后递归+记忆化搜索.yyl说这叫杜教筛?时间复杂度貌似是O(n 2/3)的? #include<cstdio> #include& ...
- UVALive 3415 Guardian of Decency(二分图的最大独立集)
题意:老师在选择一些学生做活动时,为避免学生发生暧昧关系,就提出了四个要求.在他眼中,只要任意两个人符合这四个要求之一,就不可能发生暧昧.现在给出n个学生关于这四个要求的信息,求老师可以挑选出的最大学 ...
- BZOJ 4551 树
线段树+标记永久化. #include<iostream> #include<cstdio> #include<cstring> #include<algor ...
- 通过github提升自己-测试反馈、持续精进
如果我们仅仅是将自己的代码commit.push到github上,那么对于我们的技术不会有太多的提升.我们所做的仅仅只是将github当成了我们的网盘. 我们每发布一个版本的时候,是不是也就意味着给用 ...
- K2 Blackpearl开发技术要点(Part1)
转:http://www.cnblogs.com/dannyli/archive/2012/09/14/2685260.html K2 Blackpearl开发技术要点(Part1) 预知后事如何,请 ...
- Datawindow.net 子数据窗口出错
devexpress通过标签页面打开用户控件,数据窗口嵌入用户控件中.当点击数据窗口含下拉数据窗口字段时出现如下错误: 未处理 System.NullReferenceException Messag ...
- datawindow.net数据窗口卡片设置滚动条位置
int pos = Convert.ToInt32(dw1.Describe(colname + ".y")); pos = pos - 40; dw1.Modify(" ...
- Linux makefile教程之后序十一[转]
后序 —— 终 于到写结束语的时候了,以上基本上就是GNU make的Makefile的所有细节了.其它的产商的make基本上也就是这样的,无论什么样的make,都是以文件的依赖性为基础的,其基本是都 ...
- $(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法接触JQuery一般最先学到的是何时启动事件.在曾经很长一段时间里,在页面载入后引发的事件 ...
- propertyGrid控件 z
1.如果属性是enum类型,那么自然就是下拉的. 2.如果是你自定义的下拉数据,那么需要用到转换属性标签TypeConverter 参见: http://blog.csdn.net/luyifeini ...