ESP32-S3 屏幕显示图片格式对显示速度的影响 png rgb565
ESP32-S3 屏幕显示图片格式对显示速度的影响 png rgb565针对 CardputerESP32-S3 SPI RGB565 屏固件中的图标绘制。相对耗时为经验量级非精确 benchmark同尺寸对比以RGB565 已在 RAM、pushImage为1×。1. 结论先看同尺寸下常见路径大致是RGB565 直推 ≫ ARGB8888 Alpha 混合 ≫ 每次现场解 PNG优先级做法适用要最快预生成RGB565透明烤进黑底→pushImage底色固定为黑的 UI 图标要透明叠任意底预生成ARGB8888→pushAlphaImage需要半透明/抗锯齿叠在多变底色上要省 Flash、改图方便保留PNG首次解码后RAM 缓存数量少、可接受首次卡顿不推荐反复每次drawPngFile列表翻页、按键闪烁等高频重绘面板最终都是RGB565ARGB8888 / PNG 都会在上屏前变成 16-bit。2. 各路径实际在做什么2.1 PNGdrawPngFileLittleFS 读文件 → zlib 解压 → PNG filter 还原 → 颜色/透明处理 → 写屏慢主要慢在CPU 解码zlib filter不是 30×30 像素本身。有 Alpha 时由 M5GFX/LovyanGFX 做混合画质通常最好、也最省 Flash。每次重绘都走全流程就会明显卡空调模式切换、米家列表等。2.2 预生成 RGB565.rgb565LittleFS 读原始像素 → pushImage直接写屏无 zlib、无 Alpha 混合Flash / SPI 约为 ARGB 的一半。不支持透明通道透明区需提前合成到固定底色本项目 UI 多为黑底。手写转换若处理 Alpha/抗锯齿不当观感会明显差于库解码 PNG应用「与屏上一致」的像素例如库解码后再落盘画质才可靠。2.3 预生成 ARGB8888.argb8888LittleFS 读原始像素 → pushAlphaImage读底色 混合 写回跳过 zlib保留完整 Alpha。字节序需与lgfx::argb8888_t一致B, G, R, A见scripts/png_to_rgba8888.py。比 RGB565 慢主要因为逐像素 Alpha其次是 4 字节/像素的读写量。2.4 PNG 解码一次 RAM 缓存首次drawPngFile → readRect 存 RGB565 之后pushImage画质对齐库解码重绘接近 RGB565 直推。占 RAM宽 × 高 × 2 × 槽位数空调 8 张 30×30 ≈ 14 KB。3. 相对耗时同分辨率路径相对耗时说明RGB565 已在 RAM →pushImage1×最快RGB565 从 Flash →pushImage约 1.5–3×多 FS 读ARGB8888 已在 RAM →pushAlphaImage约 3–6×Alpha 混合ARGB8888 从 Flash →pushAlphaImage约 4–8×FS AlphaPNG 每次drawPngFile约 10–40×zlib 解码波动大绝对量级体感参考30×30路径大约RGB565pushImageRAM 1 msARGB8888pushAlphaImageRAM约 2–5 msPNG 现场解码约 10–30 ms70×70大约再乘5–6 倍按面积。若整页还有清屏、大量文字、布局计算图标优化后「体感不明显」是正常的——瓶颈可能不在图标。4. Flash / RAM 占用同图公式无压缩原始像素RGB565宽 × 高 × 2ARGB8888宽 × 高 × 4PNG视压缩而定通常远小于原始像素尺寸RGB565ARGB888825×25≈ 1.25 KB≈ 2.5 KB30×30≈ 1.8 KB≈ 3.6 KB60×60≈ 7.2 KB≈ 14.4 KB70×70≈ 9.8 KB≈ 19.6 KB本仓库 LittleFS 分区约1.5 MBdefault_8MB.csv的 spiffs。设备图标全套 ARGB 约数百 KB 量级空间一般够用若同时保留 PNG ARGB体积会叠加上去。RAM 策略少量固定图标如空调 8 张可常驻缓存。大量设备图标用暂存缓冲按需从 Flash 读不全量常驻避免上百 KB数 MB RAM。5. 本项目现状实现要点资源格式优先绘制入口空调模式/icon/ir/.argb8888回退 PNGsrc/app_ir.cpp可带槽位缓存设备图标/icon/device/.argb8888回退 PNGsrc/app_device_icons.cppscratch 按需加载Logo/logo_60.argb8888回退 PNGdrawAppLogo60Icons 应用中的设备图同上走drawDevicePngNativesrc/app_icon_demo.cpp箭头 / WiFi / 电池等矢量代码绘制src/app_icons.cpp无图片文件转换脚本python scripts/png_to_rgba8888.py data/icon/ir python scripts/png_to_rgba8888.py data/icon/device data/logo_60.png data/logo_50.png另有历史脚本scripts/png_to_rgb565.py透明合成到黑底若改回 RGB565 路线需保证转换质量后再替换绘制路径。网页配置预览仍使用PNG浏览器友好固件绘制优先原始像素文件。6. 选型建议黑底 UI、要极致刷新RGB565 预生成 pushImage必要时 RAM 缓存当前页。要透明/抗锯齿、底色可能不纯黑ARGB8888 pushAlphaImage。图很少、想少维护资源PNG 首次解码缓存即可。列表里很多张大图优先减小尺寸如_25w 原始像素再考虑页级缓存而不是全库常驻。7. 相关 APIM5GFX / LovyanGFXAPI用途drawPngFile(FS, path, ...)从文件系统解码 PNGpushImage(x, y, w, h, rgb565*)推送 RGB565无 AlphapushAlphaImage(x, y, w, h, argb8888*)推送带 Alpha 的 32bpp 并混合readRect(...)读回屏上像素便于「解码一次再缓存」

相关新闻

FFmpeg视频处理实战:从格式转换到批量处理的完整技术指南

FFmpeg视频处理实战:从格式转换到批量处理的完整技术指南

如果你是一名程序员或技术创作者,看到"电影展"和"预告片"这样的标题,可能会觉得这与技术博客毫不相关。但请稍等——这篇文章要讨论的,其实是一个在技术领域日益重要的话题: 如何用技术手段高效处理和分析视…

2026/10/11 5:35:22 阅读更多 →
汽车性能测试全流程:从新车基线到猎芯调校的技术解析

汽车性能测试全流程:从新车基线到猎芯调校的技术解析

在汽车性能测试领域,新车测试和猎芯测试是两种常见的评估方式,它们分别关注车辆出厂状态下的基础性能和经过特定调校后的极限表现。飞火通天单刷42.8秒和毒药猎芯榛名山49.7秒这两个成绩,通常出现在赛道计时或特定路段的性能对比中&#xff0…

2026/10/11 7:08:34 阅读更多 →
审计数据安全合规怎么落地?中注协准则、数据安全法、等保三级与留存期对比

审计数据安全合规怎么落地?中注协准则、数据安全法、等保三级与留存期对比

背景:审计数据合规不是"加个锁"就完事 会计师事务所手里是客户高度敏感的数据:财务、税务、流水、合同。近年监管对数据安全、个人信息保护、底稿留存的要求持续加码。把合规当成"技术部门的事"会出事——它是执业风险的一部分。 本…

2026/10/8 14:45:15 阅读更多 →

最新新闻

黑科技下载器源码实战:多线程分块、断点续传与资源嗅探全解析

黑科技下载器源码实战:多线程分块、断点续传与资源嗅探全解析

简介:黑科下载器是一款面向普通用户的多端下载工具资源包,针对迅雷限速、百度云非会员龟速等常见痛点,提供网页版、PC端、安卓与iOS四种使用形态,适合希望摆脱会员限制、提升日常下载效率的用户参考使用。压缩包共267个文件&#…

2026/10/11 23:41:48 阅读更多 →
窗口函数 SUM() OVER() 详解:PARTITION BY 与 ORDER BY 的累计计算逻辑

窗口函数 SUM() OVER() 详解:PARTITION BY 与 ORDER BY 的累计计算逻辑

很多人学了窗口函数,一看到SUM() OVER(PARTITION BY ... ORDER BY ...)这种写法还是会懵,特别是ORDER BY加上之后,结果怎么就从“分组总和”变成“累加值”了?这篇文章继续走实战路线,我会把SUM() OVER()从基础语法到进…

2026/10/11 23:40:47 阅读更多 →
数据库课程设计:电力收费系统表结构、触发器与存储过程全解析

数据库课程设计:电力收费系统表结构、触发器与存储过程全解析

简介:《数据库课程设计电力公司收费系统.doc》是一份完整的数据库课程设计报告,面向高校计算机、软件工程等专业学生,适用于电力公司收费管理信息系统设计课题。文档围绕客户、用电类型、员工、用电信息、费用管理、收费登记六大核心数据表展…

2026/10/11 23:40:47 阅读更多 →
JMeter+InfluxDB+Grafana:搭建性能测试实时监控看板

JMeter+InfluxDB+Grafana:搭建性能测试实时监控看板

做性能测试的人基本都经历过这样的场景:JMeter压着压着,突然想知道当前的TPS到底有没有掉链子,响应时间的曲线是不是已经拐头向上,可日志刷得太快根本看不出来。一开始我也用JMeter自带的监听器,结果压测刚跑几分钟&am…

2026/10/11 23:40:47 阅读更多 →
内网安全评估:揭秘ACL权限滥用与横向移动链路

内网安全评估:揭秘ACL权限滥用与横向移动链路

内网安全评估做到第三周的时候,我在一份共享文件夹的ACL导出清单里看到了一个非常扎眼的组名:SHARE MODERATORS。这个组在域里并不显眼,不在本地管理员组,也不在任何域管理组里,可它的权限范围却覆盖了全公司的核心共享…

2026/10/11 23:40:47 阅读更多 →
同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建:多商户入驻与智能派单方案详解同城家政行业早已从单一门店自营模式,转向多商户平台化联营发展。平台整合全城多家家政公司、个体服务商、持证服务师傅,统一承接用户订单,通过智能调度完成订单分发与履约。相…

2026/10/11 23:39:46 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →