zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    切片 Slice
    表单与v-model
    vue-内置指令
    go单元测试
    go异常处理
    设计模式
    django数据库事务
    go interface衍生的插件化处理
    goroutine
    drf之序列化
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/4367287.html
Copyright © 2011-2022 走看看