ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片

news2024/12/24 8:44:07

ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片

概述

不同于上节 ESP32-Web-Server编程-在网页中通过 src 直接插入图片,本节引入 Base64 编码来显示图片。

Base64 是一种用64个字符来编码表示任意二进制数据的方法。任何符号都可以转换成 Base64 字符集中的字符,这个转换过程就叫做base64编码。

通常,Base64 编码会使数据的长度增加,好处是编码后的文本数据可以在邮件正文、网页等直接显示。

有时打开一个网页,就能看到某些样式中的图片不是一个由 src标识的资源地址,而是 base64 编码的字符串,这么做有什么好处呢? 这样可以减少一次请求 src 对应的文件的 http 请求。但也并不是什么图片都适合用 base64 来处理,因为图片越大,转换的 base64 的字符串就越长,对带宽的要求更高了。

需求及功能解析

本节演示在 ESP32 Web 服务器上插入若干 base64 编码后的图片。

将您的图像转换为 Base64 编码。可以 访问以下网站:

  • www.base64-image.de

  • https://www.base64encode.org/

示例解析

  • 目录结构

    ├── CMakeLists.txt
    ├── main
    │   ├── CMakeLists.txt
    │   └── main.c                 User application
    ├── components
    │   └── fs_image
    └── README.md                  This is the file you are currently reading
    
    • 目录结构主要包含主目录 main,以及组件目录 components.
    • 其中组件目录components中包含了用于存储网页文件的 fs_image 目录。

前端代码

前端代码在 body 中插入了两个 base64 编码后的图片:

<body>
    <h2>ESP Image Web Server</h2>
    <img src="data:image/png;base64,
    <img src="data:image/png;base64,
</body>  

后端代码

后端代码仍旧使用前述基于 spiffs 的文件系统,存储 Web 需要的后端资源。

示例效果

上传图片转换为 Base64 数据:

在这里插入图片描述

打开网页查看 Base64 编码后的图片:

在这里插入图片描述

总结

1)本节介绍如何将图像转换为 Base64 以将其包含在 ESP32 Web 服务器的前端文件中。

资源链接

1)ESP32-Web-Server ESP-IDF系列博客介绍
2)对应示例的 code 链接 (点击直达代码仓库)

3)下一篇:

(码字不易感谢点赞或收藏)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware提示:此虚拟机似乎正在使用中,取得该虚拟机的所有权失败错误的解决方案

当你遇到这个的时候是不是很疑惑&#xff0c;现在给你解决方案 step1: 先找到配置文件目录 D:\centOs7_mini\ 这里写成你的这个 step2: 在这个地方查找最后面是 .vmx.lck文件夹,然后进行修改、删除、移动都可以 step3: 去虚拟机那边重新启动就行

【C语言快速学习基础篇】之一基础类型、进制转换、数据位宽

文章目录 一、基础类型(根据系统不同占用字节数会有变化)1.1、有符号整形1.2、无符号整形1.3、字符型1.4、浮点型1.5、布尔型 二、进制转换2.1、二进制2.2、八进制2.3、十进制2.4、十六进制2.5、N进制2.6、进制转换关系对应表 三、数据位宽3.1、位3.2、字节3.3、字3.4、双字3.5…

2023年快结束了,来看看你使用的编程语言在排行榜上排名第几?

【关注微信公众号&#xff1a;跟强哥学SQL&#xff0c;回复“笔试”免费领取大厂SQL笔试题。】 废话不多说&#xff0c;直接上图&#xff08;双击图片查看大图&#xff09;&#xff1a; 这张编程语言排行榜来源于tiobe.com网站&#xff0c;根据TIOBE编程社区指数进行排名&…

黑苹果之主板篇

一、什么是主板 主板&#xff0c;又叫主机板&#xff08;mainboard&#xff09;、系统板&#xff08;systemboard&#xff09;、或母板&#xff08;motherboard&#xff09;&#xff0c;是计算机最基本的同时也是最重要的部件之一。主板一般为矩形电路板&#xff0c;上面安装了…

主食罐头哪个牌子好?猫主食罐头品牌分享

进口的猫罐头在近期确实经历了一些困难。由于疫情的影响&#xff0c;许多货品无法正常进口&#xff1b;而最近禽流感的问题也对备受好评的德罐品牌造成了重大冲击。 然而&#xff0c;我们国内生产的猫罐头产品在这段时间展现出了出色的表现。我们推出了许多优质产品&#xff0…

交叉验证以及scikit-learn实现

交叉验证 交叉验证既可以解决数据集的数据量不够大问题&#xff0c;也可以解决参数调优的问题。 主要有三种方式&#xff1a; 简单交叉验证&#xff08;HoldOut检验&#xff09;、k折交叉验证&#xff08;k-fold交叉验证&#xff09;、自助法。 本文仅针对k折交叉验证做详细解…

【项目】学生信息管理系统

概述 本系统总耗时 6 6 6 天&#xff0c;包括 学生发展与数据驱动平台6.2.cpp、学生信息.txt、用户账号.txt、注意事项.txt。由于代码对文件的调用使用的是相对路径&#xff0c;所以要求这 4 4 4 个文件都需要在同一目录。使用代码前先仔细看 注意事项。 如图&#xff1a; …

代码随想录算法训练营 ---第五十八天

今天开启单调栈的征程。 第一题&#xff1a; 简介&#xff1a; 本题有两种解法&#xff0c;第一种&#xff1a;暴力破解 两层for循环 时间复杂度为O(n^2) 超时了 第二种&#xff1a;单调栈解法也是今天的主角。 单调栈是什么&#xff1f; 单调递增栈&#xff1a;单调递增栈…

Centos7部署Graylog5.2日志系统

Graylog5.2部署 Graylog 5.2适配MongoDB 5.x~6.x&#xff0c;MongoDB5.0要求CPU支持AVX指令集。 主机说明localhost部署Graylog&#xff0c;需要安装mongodb-org-6.0、 Elasticsearch7.10.2 参考&#xff1a; https://blog.csdn.net/qixiaolinlin/article/details/129966703 …

22 查找众数及中位数

题目描述 众数是指一组数据中出现次数量多的那个数&#xff0c;众数可以是多个。 中位数9是指把一组数据从小到大排列&#xff0c;最中间的那个数&#xff0c;如果这组数据的个数是奇数&#xff0c;那最中间那个就是中位数&#xff0c;如果这组数据的个数为偶数&#xff0c;那就…

tomcat环境搭建

镜像下载地址&#xff1a;https://mirror.tuna.tsinghua.edu.cn/apache/tomcat/ 配置环境变量 添加系统变量 编辑Path 测试 dos窗口运行startup启动tomcat 访问http://localhost:8080/

2023年最新prometheus + grafana搭建和使用

一、安装prometheus 1.1 安装 prometheus官网下载地址 sudo -i mkdir -p /opt/prometheus #移动解压后的文件名到/opt/,并改名prometheus mv prometheus-2.45 /opt/prometheus/ #创建一个专门的prometheus用户&#xff1a; -M 不创建家目录&#xff0c; -s 不让登录 useradd…

YITH WooCommerce Product Bundles Premium电商商城产品捆绑销售高级版

点击阅读YITH WooCommerce Product Bundles Premium电商商城产品捆绑销售高级版原文 YITH WooCommerce Product Bundles Premium电商商城产品捆绑销售高级版的作用是在您的商店中创建特别优惠&#xff0c;将产品捆绑在一起提供折扣和特价。 您如何从中受益&#xff1a; 您将…

YOLO的全面综述:从YOLOv1到最新版本

文章目录 摘要1、简介2、YOLO在不同领域的应用3、目标检测的度量标准和非最大值抑制&#xff08;NMS&#xff09;3.1. AP如何工作&#xff1f;3.2. 计算AP3.3、非极大值抑制&#xff08;NMS&#xff09; 4、YOLO: You Only Look Once4.1、YOLOv1的工作原理4.2、YOLOv1架构4.3、…

数学术语之源——全纯函数(holomorphic)

1. “holomorphic” 和 “meromorphic”的词源 术语“全纯函数(holomorphic function)”和“亚纯函数(meromorphic function)”由Charles A. A. Briot (1817-1882) 和Jean-Claude Bouquet (1819-1885)在<<椭圆函数理论>>(Thorie des fonctions elliptiques)(1859年…

月薪6W!美团、网易等大厂急招HarmonyOS开发!

近期&#xff0c;多家互联网公司发布了多个和鸿蒙系统有关的岗位。 不仅如此&#xff0c;还与Windows等主流老牌操作系统并列&#xff0c;并且排在首位介绍。 此外&#xff0c;今日头条招聘Android开发工程师也提及岗位需要“负责今日头条 Android、鸿蒙系统等新技术方向调研…

怎么压缩过大的GIF动图?三种方法随心选!

GIF图片由于其图片格式&#xff0c;本身就会很大&#xff0c;但是微信QQ还有一些其他的社交平台对上传的表情包是有限制的&#xff0c;这个时候就需要借助一些图片处理工具对GIF进行压缩。 下面就向大家介绍三种好用的方法并展示具体的操作步骤。 一、使用嗨格式压缩大师进行压…

WPS论文写作——公式和公式序号格式化

首先新建一个表格&#xff0c;表格尺寸按你的需求来确定&#xff0c;直接 插入--》表格 即可。 然后在表格对应位置填上公式&#xff08;公式要用公式编辑器&#xff09;和公式序号&#xff0c;然后可以按照单独的单元格或者整行或整列等来设置样式&#xff0c;比如居中对齐、…

图像处理之把模糊的图片变清晰

1.图片如果是有雾化效果的对图像产生影响的,要先进行图形增强,Retinex是基于深度神经网络了,我在之前图形处理的文章一路从神经网络(概率统计)—>积卷神经网络(对区域进行概率统计,对图片进行切割多个识别对象)–>深度积卷神经网络(RetinexNet也是模拟人脑的处理过程,增加…

常见的Bean工厂后置处理器

此代码在jdk11上测试通过&#xff0c;SpringBoot版本为2.7.14 1.上代码 导入坐标 <dependencies><!-- spring数据坐标 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-rest</art…