对照片进行base64编码,先用TIdEncoderMIM编码,然后用TIdDecoderMIME解码,为什么解出来的为空

解决方案 »

  1.   

    代码大概如下,现在可以解码出来,但是解出来的照片比以前的大了一倍,怎么办?
    var
     fs:TfileStream;
     str:string;
     ts:Tfilestream;
    begin
      fs:=TfileStream.Create('c:\pic1.JPG',fmOpenreadWrite);
      str:=idEncoderMIME1.Encode(fs);
      fs.Destroy;
      ts:=TFileStream.Create('c:\pic2.jpg',fmCreate);
      idDecoderMIME1.DecodeToStream(str,ts);
      ts.WriteBuffer(ts,ts.Size);//用这条语句输出的pic2比pic1大了一倍,ts.size div 4096就可以了,为什么?         
      ts.Destroy;
    end;
      

  2.   

    //ts.WriteBuffer(ts,ts.Size); //这条语句去掉试试~~
      

  3.   

    谢谢: zswangII(伴水清清)(职业清洁工) 。