【Delphi + Vue】Web后端动态图片传递给前端

article/2025/10/9 23:38:21

在用Delphi做Web后台的时,有时需要用到后台动态生成二维码图片,给前端使用,虽然前端可以通过js库生成,目前流行的有 QR码生成器(在线)、QRCode.js(支持本地)、 arale-qrcode(支持本地)等,生成的效果也都满意。但是这些js库都使用的是H5的cavas来画图,在一些早期的Android设备上不支持(例如:Android 5.1)。在这种情况下,就需要后台生成好图片,然后经过base64编码后发送给前端,从而实现图片显示支持部分低版本的设备。如果应用不考虑低版本,当然直接使用js库就是很方便的。

言归正传,delphi 做后台,生成好图片信息,通过base64传递到前端,前端经过解码,实现图片显示。

一、服务端:Delphi 代码示例(需要单元:System.NetEncoding)

// 1. 按照stream 返回数据MM := TMemoryStream.Create;MM.LoadFromFile('a3650.jpg');  //如果动态生成的图片,就完全不需要文件装载,直接编码输出即可MM.Position := 0;     //注意,指针要移到首位SetLength(B,MM.Size);MM.Read(B[0],MM.Size);MM.Free;S := TNetEncoding.Base64.EncodeBytesToString(B);S := S.Replace(#13,'').Replace(#10,''); //经过delphi Base64后的编码,会中间插入回车换行,主要时便于肉眼观察,js前端实际使用中时不需要的B := TEncoding.UTF8.GetBytes(S);   //给前端的是UTF8编码C.Response.StatusCode := 200;        //返回状态码C.Response.Close(B);                //返回编码后的图片数据到前端


 

<div><img :src="imgSrc" alt="">
</div>
axios.post('http://192.168.1.190/icenter/30001/J',{aaa:'123'},{headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(res => {this.imgSrc = 'data:image/jpg;base64,' + res.data; //imgSrc 是Vue中 img 标签的src});

三、需要注意的地方:

1、delphi进行的Base64编码需要将中间的回车换行(#13#10)去掉;

2、对于前端img标签,src表示的是图片源,格式一定是:data:image/jpg;base64, + 后台返回的信息。

3、在测试中,建议自己做一个10x10的小纯红色图片,这样调试起来数据比较小,简单很多。

 


http://chatgpt.dhexx.cn/article/tOORC6aM.shtml

相关文章

web搭建服务器端+创建web后端项目操作步骤

一、搭建服务器端 以前,我们的iava程序都是在本地运行,在idea执行main&#xff08;&#xff09;开始运行; 从javaEE开始,后端程序都是运行在服务器上,准备工作就是先要在我们的电脑上安装一个web服务器,把我们开发的java程序部署在服务器中,这样就可以从前端远程的通过网络进行…

从Web后端(Java)转到游戏服务端的感受

九零后的男生几乎都是玩电子游戏长大的&#xff0c;做游戏开发几乎是每个九零后男生从小就有的梦想吧。我的大学时代&#xff0c;正好与移动Web高速发展的时代重合了&#xff0c;大学里几乎所有同学都是做Web方向的开发&#xff0c;Web前端&#xff0c;Java后端等等。大四的秋招…

Python web后端开发框架 Django 、Flask、Tornado

深入学习Python &#xff0c;用Django做Web后端开发现在Python的用途愈来愈广&#xff0c;服务器、Web、游戏、爬虫、数据分析 以及人工智能 学习之路还很长技术之路 不能回头 陷进去 就出不来 就跟恋爱一般&#xff0c;学习中、项目中 印象笔记、有道云笔记、Onenote都记了好…

Web后端框架Springboot创建和基础讲解(一)

Springboot是一款底层由java编写的web后端框架&#xff0c;前身是spring框架&#xff0c;相较于前身框架而言&#xff0c;继承了其良好的兼容性以及扩展性&#xff0c;并且舍弃了大量繁杂的xml文件&#xff0c;将其改为依赖注入spirngboot框架的容器中&#xff0c;节省了工作者…

Web后端开发知识点整理

Web后端开发知识点整理 九大内置对象 1:为了方便开发者而在jsp页面加载完毕时而自动创建的内置对象 内置对象名 类型 request HttpServletRequest response HttpServletResponse config ServletConfig application ServletContext sessi…

wed后端和java的区别_web前端和web后端的区别详细分析

原标题&#xff1a;web前端和web后端的区别详细分析 在刚开始从事web开发时&#xff0c;首先要选准学习方向&#xff0c;看是想从事前端部分还是后端程序部分。当然在工作的后期&#xff0c;就不会分的那么细致了。做前端到后期也会懂一些后端的技术&#xff0c;反之&#xff0…

web搭建服务器端+创建web后端项目详细步骤

一、搭建服务器端 Web服务器&#xff1a;用于响应来自Web客户端&#xff08;如浏览器、移动应用程序等&#xff09;的请求并提供Web页面和其他Web资源的软件程序或计算机系统。它允许用户在Web浏览器中输入网址&#xff0c;通过HTTP协议向服务器发送请求&#xff0c;并收到Web页…

我的 Java/C# web 后端开发技术选择

简单介绍一下&#xff0c;我的 Java/C# web 后端开发技术选择。与网上一般人所用&#xff0c;大不相同。 先来一个表格&#xff0c;以下是我常用的Java/C# web 后端开发技术&#xff1a; 我常用的Java/C# web 后端开发技术 技术分类Java webC# web数据库bonecp,commons-dbcp,co…

php后端技术 有哪些,web后端开发技术有哪些 ?

如果你想要从事web后端开发的工作&#xff0c;那么你就需要了解web后端技术有哪些&#xff1f;并且要学习掌握这些web后端开发技术。下面我们就给大家介绍有哪些web后端技术。 web后端开发技术&#xff1a; 1、脚本语言基础。主流的后端脚本语言有php、 java 、 python、C、C等…

web后端开发php,web后端开发主要做什么?

应用程序或web服务可以分为两大部分:前端和后端。从这些名字可以猜出他们的角色。前端是你可以“看到”的部分。它是让你与应用程序或服务交互的部分。颜色、动画、布局以及所有其他增加你使用应用或网站体验的酷东西就是前端。前端通常称为用户界面(UI)。后端是你看不到的部分…

Web后端基础知识

文章目录 前言一、web基础知识1.web开发使用java的优势2.web前后端分离有什么好处&#xff1f;谈一下各自的职责。3.POJO和Java Bean&#xff1f;4.Tomcat容器(应用服务器)谈一下&#xff1f;5.Servlet谈一下&#xff1f;6.Servlet的生命周期谈一下&#xff1f;7.Servlet的三大…

web后端(javaWeb)

文章目录 1.javaweb简介2.XML3.Tomcat服务器4.Servlet15.1协议互联网通信模型5.2HTTP6.servlet27.JDBC8.JSP9.JSP中的文件下载和上传10.请求重定向和请求转发的区别11.Cookie 和 Session12.谷歌验证码的使用13.Filter过滤器14.ThreadLocal 的使用15.JSON和Ajax请求15.1JSON 在 …

GIMP基本功能和教程!

以剪贴板为内容创建一个工作布&#xff1a;SHIFT CTRL &#xff36; 或者&#xff1a;File -> Create ->From Clipboard 取消选择&#xff1a;SHIFT CTRL A 或者&#xff1a;Select -> None 反选&#xff08;选补集&#xff09;&#xff1a;CTRL I 或者&#xff…

GIMP教程 4 图层

图层可以说是现代制图软件的精髓&#xff0c;也是最根本地区别于纸质制图的地方。 GIMP呼出图层窗口的方法也很简单 点击【窗口----可停靠对话框----图层】 或者直接使用快捷键 ctrlL 便可呼出图层窗口 剩下的&#xff0c;就跟所有其它制图软件一样了。 还有问题可联系作者…

GIMP教程 5 选择

选择的意义在于限制作用范围&#xff0c;即&#xff0c;使所有操作只对选择部分有效&#xff0c; 不会“误伤”未选择部分。 gimp提供了多种选择工具&#xff0c;参见工具箱前几个按钮&#xff0c; 或者 【工具----选择工具】中按钮列表。 使用左键拖出选择范围&#xff0c…

教程:GIMP中怎样移动选区

教程&#xff1a;GIMP中怎样移动选区 更新历史 20190421&#xff1a; 首次发布 在GIMP中&#xff0c;一个常用的操作就是&#xff1a;选中某图层中的一块区域&#xff0c;然后对其进行移动。以下为教程。 注&#xff1a;完成以下教程时&#xff0c;使用的软件版本为 GIMP 2.10…

教程:GIMP中改变画布大小

教程&#xff1a;GIMP中改变画布大小 更新历史 20190428&#xff1a; 首次发布 在GIMP中&#xff0c;一个常用的操作就是&#xff1a;需要在不做缩放的情况下对图像进行扩展(或裁剪)&#xff0c;即将画布增大(或缩小)。以下为教程。 注&#xff1a;完成以下教程时&#xff0c;…

gimp 抠图_gimp软件如何实现抠图?

抠图伴随着很多从事图片处理工作的朋友&#xff0c;能够实现抠图效果的软件有很多&#xff0c;但是能够很快速的达到效果的软件我觉得还是gimp最简单&#xff0c;下面我们可以看看GIMP软件使用前景选择工具实现抠图效果的详细步骤技巧。 GIMP软件实现抠图效果的详细步骤技巧&am…

使用GIMP抠图

文章目录 使用GIMP进行抠图&#xff0c;然后再使用一些工具例如python库PIL进行paste&#xff0c;这样就可以实现数据增广。 下面详细说一下步骤&#xff1a; 1、在GIMP软件中打开图片&#xff1b; 如图&#xff0c; 2、比如把上图中的银行卡给抠下来&#xff0c;可以长按 ctr…

GIMP 教程:如何在 GIMP 中创建曲线文本

当你在 GIMP 中制作一个徽章、海报或其它任何作品时&#xff0c;你需要扭曲或弯曲一些文本。多功能的GIMP工具提供了一些创建弯曲文本的方法。取决于你将如何使用它和你想给予文本的弧度&#xff0c;有一些适合不同情况的方法。 在本篇教程中&#xff0c;我将向你展示我最喜欢…