网上找到的用xml传输图片

本文介绍了一种使用ZLIB进行图片压缩的方法,并通过Base64编码实现字符串与图片流之间的转换。该方法适用于在网络上传输图片时减少数据量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


用到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即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值