LAT1033
Local Application Tips
LAT1033 – Rev 1.0 – Jan. 2022
将 framebuffer 保存为图片来检查内容
关键字:Framebuffer,GUI
1. 前言
客户在做 GUI 项目开发时,会碰到许多显示相关的问题。而屏幕花屏是比较严重的问
题,如果产品出现花屏,会严重影响使用体验。正常的 UI 显示,包括画图和将帧缓冲传
输到屏幕两个过程。如果画图过程出错,那帧缓冲的内容就不对了,传输到屏幕后显示也
不对。而如果画图过程正确,而传输过程出错,虽然帧缓冲的内容是对的,而屏幕接收到
的数据出错了,那屏幕显示的内容自然也是错误的。因此在定位显示错乱、花屏等问题
时,需要先判断是画图出错还是传输过程出错。本文会介绍一种方法,将帧缓冲内容导出
并保存为图片,来判断帧缓冲内容是否正确。
由于帧缓冲的内容为全部像素的 RGB 数据,在导出后需要借助其它工具将 RGB 数据
转换为图片,方便在 PC 上直接查看。这里可以使用 python 的 pillow 包,将 RGB 转换为
JPG 图片。而读取帧缓冲的过程可以借助 python 的 pyswd 包来实现。
2. 环境安装
本机环境:Windows10 64bit
安装 python 3.9.0 (测试过 3.9.6 正常),检查系统环境变量,将 python 添加到 Path
中。下载:https://www.python.org/downloads/
图1. 设置环境变量