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的更多相关文章

  1. Delphi XE 10 DataSnap TCP 与 HTTP 比较

    在网络程序开发过程中,面临TCP  HTTP 的选择上往往让人陷入犹豫不决中,http的灵活和较强的穿透能力是TCP无法与之相提并论的,然而在响应速度和处理能力上却能看出后者比前者足够强大的地方.因此 ...

  2. DataSnap控件TDSServerClass属性LifeCycle生命周期管理(From李维)

    DelphiXE2中的DataSnap中提供了三种不同的生命周期,开发人员可以在TDSServerClass控件的LifeCycle特性中设定,下面分别说明每一种生命周期的意义 1. Server:在 ...

  3. DelphiXE2 DataSnap开发技巧收集

    DelphiXE2 DataSnap开发技巧收集 作者:  2012-08-07 09:12:52     分类:Delphi     标签: 作为DelphiXE2 DataSnap开发的私家锦囊, ...

  4. DataSnap 2009 系列之三 (生命周期篇)

    DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...

  5. datasnap的初步 生命期LifeCycle

    datasnap的初步 生命期LifeCycle   TDSServerClass有一个属性LifeCycle,这个属性有三个值,很好理解1.Session,这是默认值.就是一个连接,一个Sessio ...

  6. 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集

    从Delphi 2009开始,DataSnap技术发生了很大的变化,并在Delphi 2010和Delphi XE的后续版本中得到了持续的改进.Delphi 2009之前的DataSnap,虽然也实现 ...

  7. Delphi2010 DataSnap入门

    DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection ...

  8. Http协议访问DataSnap Rest 服务器

    用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要注意下面的细节,否则不能正常连接. 假如服务器有如下的用户验证: procedure TSC.DSAut ...

  9. 关于 datasnap Stream的英文博客能容

    转载:http://blogs.embarcadero.com/jimtierney/2009/04/06/31461/ DataSnap Server Method Stream Parameter ...

  10. DataSnap 用TStream 传递大数据 返回流大小为-1的情况

    DataSnap可以直接传递和返回TStream类型的参数,这点是很方便的.但是很多人发现好像大小稍微大点就工作不正常了,就变相使用其它类型转换来转换去,这样便利性就失去了. 官方有篇博客很详细的介绍 ...

随机推荐

  1. entity framework自动迁移

    第一步,建立测试项目,普通的WinForm类型,EntityMigration: 第二步,从NuGet为项目添加MySql.Data.Entity,由Oracle提供,我选择人气高的: 第三步,建立实 ...

  2. 【转】nginx中的ngx_cdecl

    http://blog.csdn.net/midion9/article/details/50605337 看nginx的代码时,发现有些函数返回值之后,还有一个ngx_cdecl关键字,如:   1 ...

  3. out.print()和response.getWriter().write()区别

    1.print()和write()区别: write():表示的是仅支持输入字符类型数据,字符,字符数组和字符串等, print():表示的是将各种数据类型(包括object)的数据通过默认编码换成b ...

  4. linux的零碎使用

    一.Linux(rehat.centos.ubuntu...)基础知识 上午: putty软件连接linux服务器: [root @ foundation2   ~ ]         # 用户名   ...

  5. MySQL下载、安装及启动

    介绍 Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之 ...

  6. recyleView使用笔记

    直接上代码: package com.test.recycleview; import android.app.Activity; import android.graphics.Canvas; im ...

  7. linux socket编程实例

    /* ============================================================================ Name : client.c Auth ...

  8. java 遍历map 方法 集合 五种的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  9. Python 多线程

    一.线程的使用 需导入模块: from threading import Thread 二.基本使用 def fun1(arg1, v): print(arg1) print('before') t1 ...

  10. [AS3.0] Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetStream.Record.NoAcces 解决办法

    突然又需要FMS做视频录制,却遇到一些意想不到的问题,我在想当年做的时候怎么没遇到... 报错: Error #2044: 未处理的 NetStatusEvent:. level=error, cod ...