来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247486327&idx=1&sn=63ad4f7aa0638c6d5de76de811ff3826&chksm=f95c90f0ce2b19e6e8f6653136828628a490c8d75c3bd49af40331f2705adacc61b2e1b69b51#rd

图片转 C 语言数组工具

将 JPG/PNG/BMP 图片转换为 PBM 格式(800x480,1位/像素),并生成 C 语言数组代码。

截图

安装依赖

pip install -r requirements.txt

使用方法

python image_to_c.py <图片路径> [阈值] [数组名称]

参数说明

图片路径

JPG/PNG/BMP 格式的图片文件(必需)

阈值

二值化阈值 (0-255),默认 128(可选)

数组名称

C 数组名称,默认 gImage_4in26(可选)

注意: 图片会自动缩放到 800x480 分辨率

示例

基本用法

python image_to_c.py input.jpg

指定阈值

python image_to_c.py input.png 150

指定数组名称

python image_to_c.py input.bmp 128 myImage

输出文件

工具会生成三个文件:

output.pbm

标准 PBM 格式图片文件 ffplay output.pbm

ImageData.h

头文件,包含数组声明

ImageData.c

源文件,包含图片数据数组

输出格式示例

ImageData.h:

#ifndef GIMAGE_4IN26_H

#define GIMAGE_4IN26_H

// Image size: 800x600

// Data size: 48000 bytes

externconstunsignedchar gImage_4in26[48000];

#endif// GIMAGE_4IN26_H

ImageData.c:

#include”ImageData.h”

constunsignedchar gImage_4in26[48000] = {

/* P4 */

/* 800 480 */

0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,

0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,

// … 真实数据

};

PBM 头部说明:

P4

PBM 二进制格式标识

800 480

图片宽度和高度

工作原理

读取图片并缩放到 800x480 分辨率

转换为灰度图并进行二值化处理

生成标准 PBM 格式文件(P4 二进制格式)

读取 PBM 文件,将文本头部作为注释

将二进制数据转换为 C 语言数组(每行16个字节)

注意事项

像素值 >= 阈值时为白色 (1)

像素值 < 阈值时为黑色 (0)

数据按行优先顺序排列

每行像素数不足 8 的倍数时,会在右侧补 0

https://github.com/build-your-own-x-with-ai/ImageConvert

https://github.com/build-your-own-x-with-ai/ImageConvert

接线

下载代码

git clone https://github.com/tuya/TuyaOpen

设置环境

. ./export.sh

查看版本

tos.py version

墨水屏代码

cd examples/e-Paper/4.26inch_e-Paper

选 T5AI

tos.py config choice

9. T5AI.config

编译

tos.py build

烧录

tos.py flash

查看 Log

tos.py monitor

image-1

image-2

image-3

image-4

image-5

image-6