Delphi 读取PNG base64编码文件生成图片

uses NetEncoding,PNGImage;

 

 

procedure TForm1.FormCreate(Sender: TObject);

var

  LInputStream: TFileStream;

  LOutputStream: TMemoryStream;

  Png: TPNGImage;

begin

  LInputStream := TFileStream.Create('C:\Temp\PlateImage.txt', fmOpenRead or fmShareDenyWrite);

  try

    LOutputStream := TMemoryStream.Create;

    try

      TNetEncoding.Base64.Decode(LInputStream, LOutputStream);

      ShowMessage(LOutputStream.Size.ToString);

      LOutputStream.Position := 0;

      Png := TPNGImage.Create;

      try

        Png.LoadFromStream(LOutputStream);

        Image1.Picture.Assign(Png);

      finally

        Png.Free;

      end;

    finally

      LOutputStream.Free;

    end;

  finally

    LInputStream.Free;

  end;

end;

Delphi中解析PNG Base64字符串,可以使用以下步骤: 步骤1: 将Base64字符串解码为字节数组。 要将Base64字符串解码为字节数组,可以使用Delphi内置的TNetEncoding类。使用TNetEncoding.Base64.Decode方法将Base64字符串解码为字节数组。 步骤2: 将字节数组保存为PNG图片文件。 使用TPngImage类将字节数组保存为PNG图片文件。可以使用AssignBytes方法将字节数组分配给TPngImage实例,并使用SaveToFile方法将图像保存为文件。 以下是一个示例代码,展示了如何在Delphi中完成这些步骤: ```delphi uses System.NetEncoding, Vcl.Imaging.pngimage; procedure DecodePNGfromBase64(const base64: string; const filename: string); var bytes: TBytes; pngImage: TPngImage; begin // Step 1: Decode Base64 to Bytes bytes := TNetEncoding.Base64.DecodeStringToBytes(base64); // Step 2: Save Bytes as PNG Image File pngImage := TPngImage.Create; try pngImage.AssignBytes(bytes); pngImage.SaveToFile(filename); finally pngImage.Free; end; end; // Usage example begin DecodePNGfromBase64('iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAH1JREFUKJG9kNEKwjAARSBzAVuEPMmyDAlNEWz+AdQjaPriLDS3zDL2ELEVZKDDQnBUOdJftP2zQle+Z/gQygTSyn9v+tBZv6OzbgYw/S3IF83AmdeG6gEh7cGgEPipDNuAbczKoVQBHHEJ7plYjX7kMtJrbncCdZhXiBsANwX0f27+ocpAAAAAElFTkSuQmCC', 'myimage.png'); end. ``` 在上面的示例中,`base64`参数是一个包含PNG图像编码Base64字符串,`filename`参数是要保存PNG图像的目标文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值