首页 > 其他分享 >delphi如何把json传递过来的base64值转成图片

delphi如何把json传递过来的base64值转成图片

时间:2023-06-28 22:55:38浏览次数:45  
标签:OutputStream TImage InputBytes JPEGImage delphi base64 Base64 二进制 json

资料来原:https://blog.csdn.net/red_eye/article/details/129634709  

 

在Delphi中,您可以使用TNetEncoding.Base64.DecodeString方法将JSON传递过来的Base64编码字符串转换为原始二进制数据。然后,您可以将该二进制数据保存为图像文件或将其加载到TImage组件中以显示图像。

以下是一个示例代码,假设Base64编码的图像数据存储在JSON字符串的“image”字段中:

copy codeuses
System.NetEncoding, System.Classes, Vcl.Imaging.jpeg, Vcl.Graphics;

procedure Base64ToImage(const ABase64String: string; const AFileName: string);
var
InputBytes: TBytes;
OutputStream: TMemoryStream;
JPEGImage: TJPEGImage;
begin
// 将Base64编码的字符串转换为原始二进制数据
InputBytes := TNetEncoding.Base64.DecodeString(ABase64String);

// 将二进制数据保存到文件
OutputStream := TMemoryStream.Create;
try
OutputStream.WriteBuffer(InputBytes[0], Length(InputBytes));
OutputStream.SaveToFile(AFileName);
finally
OutputStream.Free;
end;

// 或者将二进制数据加载到TImage组件中
JPEGImage := TJPEGImage.Create;
try
JPEGImage.LoadFromStream(TBytesStream.Create(InputBytes));
Image1.Picture.Assign(JPEGImage);
finally
JPEGImage.Free;
end;
end;
您可以调用此过程,将Base64编码的字符串转换为图像文件或TImage组件中的图像。例如:

copy codeBase64ToImage('iVBORw0KGgoAAAANSUhEUgAAAAUAAAAAVCAYAAABv8r...', 'image.jpg');
其中,第一个参数是Base64编码的字符串,第二个参数是要保存的文件名。如果您想将图像加载到TImage组件中,则将第二个参数设置为''。
————————————————
版权声明:本文为CSDN博主「red_eye」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/red_eye/article/details/129634709

翻译

搜索

复制

<iframe></iframe>

标签:OutputStream,TImage,InputBytes,JPEGImage,delphi,base64,Base64,二进制,json
From: https://www.cnblogs.com/FKdelphi/p/17512778.html

相关文章

  • 10redis列表操作,其他操作,redis管道,django中使用redis,django缓存,序列化json和pickle,cel
    字符串和字节转换的两种方式#字符串和字节转换的两种方式 -decode,encode-直接类型转换-bytes格式的16进制,2进制,10进制的显示#字符串需要用encode,bytes格式需要用decode,但是有时候忘了#可以直接进行强转b1=bytes(s,encoding='utf-8') print(......
  • sun.misc.BASE64Encoder().encode()的替代方案
    sun.misc.BASE64Encoder().encode 方法可以由 java.util.Base64 类来替代。java.util.Base64 类是Java8中引入的标准库,专门用于进行Base64编码和解码操作。要替代 sun.misc.BASE64Encoder().encode 方法,您可以使用 java.util.Base64 类的 getEncoder() 方法获取一......
  • fastjson将date转换成了long
     记录一个bug,这个问题是使用fastjson的时候遇到了将date的数据转换成long类型而不是转换成string环境fastjson使用的是1.2.76造成的原因更具环境大家可能已经猜测到了真实的原因-版本太低造成的。这个项目的存在时间比较久所以在使用的依赖上版本比较低,除了源码之外......
  • postman 发送json请求
    简介:  postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get、post、put等各种请求。 发送json的具体步骤:1、选择post请求方式,同时将header的content-type设置为application/json  2、设置body的编码方式为raw,application/json, raw是发送纯文本,不包含......
  • JS中字符串28种常用API总结,substring、slice、JSON.stringify、match、split、search
    一、引言在前端开发中,处理字符串是一项常见的任务。JavaScript提供了一系列的字符串API,用于操作和处理字符串数据。字符串常用的API方法有很多,包括查找字符串、截取字符串、替换字符串、分割字符串、大小写转换、字符串拼接和字符串比较等等。本文将介绍一些常用的字符串API......
  • 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
    一、概述    不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的。二、代码展示需要引用的jar包1.xml配置  Web.xml1.<?xmlversion="1.0"encoding="UTF-8......
  • delphi XLS文件另存为xlsx格式
    ExcelApp.activeworkbook.saveas(AxlsExportFile+'\华宝导入'+IntToStr(n)+'.xlsx',51);   https://www.cnblogs.com/guorongtao/p/13432383.html procedureSaveAs(constFilename:WideString;FileFormat:OleVariant;Password:OleVariant;......
  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......
  • Redfish是一种现代、开放且标准化的远程管理和监控接口,由DMTF(Distributed Management
    Redfish是一种现代、开放且标准化的远程管理和监控接口,由DMTF(DistributedManagementTaskForce)开发和维护。它基于RESTfulAPI设计,使用JSON或OData格式进行数据交换。Redfish旨在提供简化、灵活和可互操作的远程管理解决方案,取代或与传统的远程管理技术(如IPMI)配合使用。Redfish......
  • Delphi字符串比较和大小写转换函数
    首部functionSameText(constS1,S2:string):Boolean;$[SysUtils.pas功能返回两个字符串是否相等说明不区分大小写参考<NULL>例子CheckBox1.Checked:=SameText(Edit1.Text,Edit2.Text);━━━━━━━━━━━━━━━━━━━━━......