Datasnap Image
delphi用,不能与java、c#互相识别。
procedure TServerMethods.UpdateDoc(ItemID : integer; doc : TStream);
delphi用,不能与java、c#互相识别。
procedure TServerMethods.UpLoadFile(ADoc: TJSONArray);
jsonArray := TDBXJSONTools.StreamToJSON(aStream, 0, aStream.Size);
bstream := TDBXJSONTools.JSONToStream(jsonArray);
procedure TForm2.Button4Click(Sender: TObject);
var
jpg, jpg2: TJPEGImage;
aStream: TMemoryStream;
bstream: TStream;
jsonArray: TJSONArray;
begin
jpg := TJPEGImage.Create;
jpg.LoadFromFile('e:\test.jpg');
Image1.Picture.Assign(jpg); aStream := TMemoryStream.Create;
jpg.SaveToStream(aStream); aStream.Position := 0;
jsonArray := TDBXJSONTools.StreamToJSON(aStream, 0, aStream.Size);
RichEdit1.Text := jsonArray.Value;
RichEdit1.Text := jsonArray.ToString;
RichEdit1.Text := jsonArray.ToJSON; // 纯数字 不能跨语言 java c#互相识别 // jsonArray:= TJSONObject.ParseJSONValue(RichEdit1.Text);
bstream := TDBXJSONTools.JSONToStream(jsonArray);
jpg2 := TJPEGImage.Create;
bstream.Position := 0;
jpg2.LoadFromStream(bstream);
Image2.Picture.Assign(jpg2);
jpg.Free;
end;
http://www.cnblogs.com/codingnote/archive/2012/04/09/2438673.html
http://stackoverflow.com/questions/16550915/how-to-convert-a-json-string-to-an-image
http://blog.csdn.net/shandiantianying/article/details/9022121
string,base64
class function CreateTDataSetFromJSON(value: TJSONObject): TDataset;
class function TDataSetToJSONObject(value: TDataset): TJSONObject;
跨语言C#、java
Delphi读取b64字符串
procedure TForm2.Button3Click(Sender: TObject);
var
strStream: TStringStream;
b64: TBase64Encoding;
aStream: TMemoryStream;
jpg2: TJPEGImage;
begin
strStream := TStringStream.Create;
strStream.LoadFromFile('e:\b64CSharp.txt');
strStream.Position := ; b64 := TBase64Encoding.Create;
aStream := TMemoryStream.Create;
b64.Decode(strStream, aStream);
aStream.Position := ;
jpg2 := TJPEGImage.Create;
jpg2.LoadFromStream(aStream); Image2.Picture.Assign(jpg2); strStream.Free;
b64.Free;
aStream.Free;
jpg2.Free; end;
c#图片base64编码
private void button1_Click(object sender, EventArgs e)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.Drawing.Bitmap bp = new Bitmap(@"e:\test.jpg");
bp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] b = ms.GetBuffer(); this.richTextBox1.Text = Convert.ToBase64String(b); }
C#图片baes64解码
byte[] bt = Convert.FromBase64String(base64string);
System.IO.MemoryStream stream = new System.IO.MemoryStream(bt);
Bitmap bitmap = new Bitmap(stream);
pictureBox1.Image = bitmap;
Vcl.Imaging.pngimage.hpp
TPngImage
Datasnap Image的更多相关文章
- Delphi XE 10 DataSnap TCP 与 HTTP 比较
在网络程序开发过程中,面临TCP HTTP 的选择上往往让人陷入犹豫不决中,http的灵活和较强的穿透能力是TCP无法与之相提并论的,然而在响应速度和处理能力上却能看出后者比前者足够强大的地方.因此 ...
- DataSnap控件TDSServerClass属性LifeCycle生命周期管理(From李维)
DelphiXE2中的DataSnap中提供了三种不同的生命周期,开发人员可以在TDSServerClass控件的LifeCycle特性中设定,下面分别说明每一种生命周期的意义 1. Server:在 ...
- DelphiXE2 DataSnap开发技巧收集
DelphiXE2 DataSnap开发技巧收集 作者: 2012-08-07 09:12:52 分类:Delphi 标签: 作为DelphiXE2 DataSnap开发的私家锦囊, ...
- DataSnap 2009 系列之三 (生命周期篇)
DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...
- datasnap的初步 生命期LifeCycle
datasnap的初步 生命期LifeCycle TDSServerClass有一个属性LifeCycle,这个属性有三个值,很好理解1.Session,这是默认值.就是一个连接,一个Sessio ...
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
从Delphi 2009开始,DataSnap技术发生了很大的变化,并在Delphi 2010和Delphi XE的后续版本中得到了持续的改进.Delphi 2009之前的DataSnap,虽然也实现 ...
- Delphi2010 DataSnap入门
DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection ...
- Http协议访问DataSnap Rest 服务器
用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要注意下面的细节,否则不能正常连接. 假如服务器有如下的用户验证: procedure TSC.DSAut ...
- 关于 datasnap Stream的英文博客能容
转载:http://blogs.embarcadero.com/jimtierney/2009/04/06/31461/ DataSnap Server Method Stream Parameter ...
- DataSnap 用TStream 传递大数据 返回流大小为-1的情况
DataSnap可以直接传递和返回TStream类型的参数,这点是很方便的.但是很多人发现好像大小稍微大点就工作不正常了,就变相使用其它类型转换来转换去,这样便利性就失去了. 官方有篇博客很详细的介绍 ...
随机推荐
- Maven最佳实践:Maven仓库(转)
转自:http://juvenshun.iteye.com/blog/359256 什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/li ...
- List的Capacity
Capacity 在.NET中List的容量应该只是受到硬件限制. 属性Capacity的真正含义,是创建List时给它预分配的容量. 一旦项的数量超过了当前的Capacity,Capacity会以 ...
- C#中双问号、双冒号等几个特殊关键字
1.@ 这个东东看似和邮件有关啊,但是在C#的世界里,可跟邮件没有一毛钱关系,它是string的女朋友(当然了string有N多女友),二者结合就可以发挥作用了.你可以给它起个名字,叫做“逐字字符串” ...
- 查看Visual Studio异常内容
If Entity Framework throws a validation exception when saving, Visual Studio reports the message, Va ...
- [经验交流] Mesos-dns 和 Marathon-lb 简要使用方法
Mesos-dns 和 Marathon-lb 是mesosphere 官网提供的两种服务发现和负载均衡工具.官方的文档主要针对DCOS,针对其它系统的相关中文文档不多,下面是我在Centos7上的安 ...
- ALSA 学习小记
对于playback snd_pcm_begin snd_pcm_commit, 貌似 commit给的frame才会使得alsa去把数据填充 转自 http://magodo.github.io/ ...
- Windows系统
1. 更改XP登录界面 怎样启用XP的经典登录界面 第一步:用管理员账号登录系统. 第二步:运行gpedit.msc启动组策略编辑器,找到"计算机配置"--"管理模板&q ...
- XE6 & IOS开发之开发者账号、苹果证书(1):关于开发者账号
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 关于苹果开发者账号, 注 ...
- Hive On Spark环境搭建
Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...
- sftp自动授权登录
客户的账号下执行 ssh-keygen -t rsa 生成秘钥文件 ~/.ssh/id_rsa --秘钥文件 ~/.ssh/id_rsa.pub --公钥文件 将公钥文件id_rsa.pub放到sft ...