网上找到的用xml传输图片

来源:互联网 发布:vray网络渲染设置 编辑:程序博客网 时间:2024/05/21 05:40

先记下来,试过后如果可用,就保留下来。


用到ZLIB和base64

Procedure StrToBmpStream(v: OleVariant; Var Stream: TMemoryStream);
Var
  Str: String;
  MS1: TStringStream;
  MS2: TMemoryStream;
Begin
  If VarIsNull(v) Then Exit;
  Str := VarToStr(v);
  If Str = '' Then Exit;
  MS1 := TStringStream.Create(Str);
  MS2 := TMemoryStream.Create;
  Base64DeCodeStream(MS1, MS2);
  MS2.Position := 0;
  ZDecompressStream(MS2, Stream);
  Stream.Position := 0;
  FreeAndNil(MS2);
  FreeAndNil(MS1);
End;

Function BmpStreamToStr(Stream: TMemoryStream): String;
Var
  MS1: TMemoryStream;
  MS2: TStringStream;
Begin
  MS1 := TMemoryStream.Create;
  MS2 := TStringStream.Create('');
  Stream.Position := 0;
  ZCompressStream(Stream, MS1, zcMax);
  MS1.Position := 0;
  Base64EnCodeStream(MS1, MS2);
  Result := MS2.DataString;
  FreeAndNil(MS2);
  FreeAndNil(MS1);
End;


        ms := TMemoryStream.Create;
        StrToBmpStream('这里是BASE64编码的字符', ms);
image1.Picture.Bitmap.LoadFromStream(ms);


  MS.Clear;
  image1.Picture.Bitmap.SaveToStream(MS);
  str:=BmpStreamToStr(MS)
 将字符保存到XML即可
0 0