zoukankan      html  css  js  c++  java
  • base64

    uses jpeg,EncdDecd,ZLibEx

    //字符串base64 编码
    Function StrtoBase64(const Str:string):string;
    begin
     result:=EncodeString(Str);
    end;
    //字符串base64  解码
    Function Base64toStr(const Base64:string):string;
    begin
     result:=DecodeString(base64);
    end;
    //Jpeg base64  编码
    Function JpegToBase64(Jpeg : Tjpegimage):string;
    var
      jpegstream : TMemoryStream;
      StrStream  : TStringStream;
    begin
      jpegstream :=TMemoryStream.Create;
      StrStream  :=TStringStream.Create('');
      jpeg.SaveToStream(jpegstream);
      jpegstream.Position:=0;
      EncodeStream(Jpegstream,strstream);
      result:=strstream.DataString;
      jpegstream.Free;
      strstream.Free;
    end;
    //Jpeg base64  解码
    Function Base64ToJpeg(str: string):TJpegimage;
    var
      jpegstream : TMemoryStream;
      StrStream  : TStringStream;
    begin
      jpegstream :=TMemoryStream.Create;
      StrStream  :=TStringStream.Create(str);
      DecodeStream(StrStream,JpegStream);
      JpegStream.Position:=0;
      result:=TJpegimage.Create;
      result.LoadFromStream(JpegStream);
      jpegstream.Free;
      strstream.Free;
     
    end;

    ///将Bitmap位图转化为base64字符串
    function BitmapToString(img:TBitmap):string ;
    var
      ms:TMemoryStream;
      ss:TStringStream;
      s:
    string;
    begin
        ms :
    = TMemoryStream.Create;
        img.SaveToStream(ms);
        ss :
    = TStringStream.Create('');
        ms.Position:
    =0;
        EncodeStream(ms,ss);
    //将内存流编码为base64字符流
        s:
    =ss.DataString;
        ms.Free;
        ss.Free;
        result:
    =s; 
    end;

    ///将base64字符串转化为Bitmap位图
    function StringToBitmap(imgStr:string):TBitmap;
    var ss:TStringStream;
        ms:TMemoryStream;
        bitmap:TBitmap;
    begin
        ss :
    = TStringStream.Create(imgStr);
        ms :
    = TMemoryStream.Create;
        DecodeStream(ss,ms);
    //将base64字符流还原为内存流
        ms.Position:
    =0;
        bitmap :
    = TBitmap.Create;
        bitmap.LoadFromStream(ms);
        ss.Free;
        ms.Free;
        result :
    =bitmap;
    end;

    function CompressStrToBase64(sStr: string): string;
    var
      M1: TMemoryStream;
      M0, M2: TStringStream;
    begin
      Result := '';
      if sStr = '' then
        Exit;
      M0 := TStringStream.Create(sStr);
      M1 := TMemoryStream.Create;
      M2 := TStringStream.Create(' ');
      try
        M0.Position := 0;
        M1.Position := 0;
        ZCompressStream(M0, M1);
        M1.Position := 0;
        M2.Position := 0;
        EncodeStream(M1, M2);
        Result := M2.DataString;
      finally
        FreeAndNil(M0);
        FreeAndNil(M1);
        FreeAndNil(M2);
      end;
    end;

    function DeCompressBase64ToStr(sStr: string): string;
    var
      M0, M1: TStringStream;
      M2: TMemoryStream;
    begin
      Result := '';
      if sStr = '' then
        Exit;
      M0 := TStringStream.Create;
      M1 := TStringStream.Create(sStr);
      M2 := TMemoryStream.Create;
      try
        M1.Position := 0;
        M2.Position := 0;
        DeCodeStream(M1, M2);
        M0.Position := 0;
        M2.Position := 0;
        ZDecompressStream(M2, M0);
        Result := M0.DataString;
      finally
        FreeAndNil(M0);
        FreeAndNil(M2);
        FreeAndNil(M1);
      end;
    end;


     

  • 相关阅读:
    html04
    html03
    html02
    html01
    通过脚本获取form表单的数值而不是submit
    myeclipse自带的数据库查看文件
    如何实现数组和List之间的转换?
    Array和ArrayList有何区别?
    ArrayList和LinkedList的区别是什么?
    如何决定使用HashMap还是TreeMap?
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940595.html
Copyright © 2011-2022 走看看