介绍
Linux相机是一个基于V4L2驱动的项目,支持拍照、调整相机亮度参数、浏览图片、下载图片,提供了 GUI 的交互界面。
硬件
IMX6ULL开发板、摄像头、LCD
技术栈
驱动程序:V4L2
GUI:LVGL
编程语言:C++
项目构建:CMake
项目亮点
- 对 LVGL 实现 class 封装,采用链式调用的设计思想,实现 GUI 的快速开发。
Object video_container{bottom_area.get_obj()};
video_container.set_size(LV_SIZE_CONTENT, LV_SIZE_CONTENT)
.set_style_bg_opa(LV_OPA_TRANSP, 0)
.set_style_border_width(0, 0)
.set_flex_flow(LV_FLEX_FLOW_COLUMN)
.set_flex_align(LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
Switch video_switch{video_container.get_obj()};
video_switch.set_size(80, 40).add_event_cb(video_switch_event_cb, LV_EVENT_VALUE_CHANGED, nullptr);
Label video_label{video_container.get_obj(), LV_SYMBOL_EYE_OPEN " 摄像头", lv_color_white()};
- 采用面向对象的编程思想,封装了相机类、格式转换类、文件系统类、V4L2类等 class,提高开发效率。