imx6q芯片linux内核版本操作系统,将显示颜色顺序从bgr修改为rgb
来源:互联网 发布:js更改文本框颜色 编辑:程序博客网 时间:2024/06/05 08:23
引用:http://blog.chinaunix.net/uid-25765968-id-3558617.html
fb_var_screeninfo 表示屏幕可变信息,也就是说,这些东西是可设置的,在本次打开的fb中设置不会改变,关闭后设置复原
因此,当我们需要修改屏幕的一些信息时可以通过该结构体来修改
开发过程中发现,虽然内核设置的颜色顺序为rgb,实际使用中按小端存储方式测试,结果发现按地址由低到高排布为bgr,很郁闷
后来使用fbset命令查看屏幕相关信息,发现打印信息如下
mode "1366x768-111"
# D: 148.500 MHz, H: 90.219 kHz, V: 110.970 Hz
geometry 1366 768 1920 1080 24
timings 6734 148 88 36 4 44 5
accel false
rgba 8/0,8/8,8/16,0/0
endmode
rgb设置信息确实是0,8,16但显示就是bgr,不合逻辑
后打开fb,输出fbd->vinfo.red.offset,fbd->vinfo.green.offset,fbd->vinfo.blue.offset的值,发现偏移为16,8,0,与测试一致。看来问题就在这里了,修改了这里的offset应该就能实现修改rgb顺序了。
于是进行测试
fbd->vinfo.red.offset=0;
fbd->vinfo.green.offset=8;
fbd->vinfo.blue.offset=16;
测试成功
为了测试正常打开fb,设置vinfo后正常关闭fb,看设置能否恢复原状
1、先不设置vinfo,获取offset值为16,8,0,将设置显存255,0,0,255,0,0,显示为蓝色,不关闭fb,退出程序
2、获取offset值为16,8,0,再设置vinfo的offset为0,8,16,接着关闭fb,正常退出程序
3、接着先不设置vinfo,获取offset值为0,8,16,将设置显存255,0,0,255,0,0,显示为红色,不关闭fb,退出程序
4、先不设置vinfo,获取offset值为0,8,16,将设置显存255,0,0,255,0,0,显示为红色
结论:无论是否正常关闭fb,设置都会保留,不会回复原状,测试条件为自己做的简单linux内核版本
- imx6q芯片linux内核版本操作系统,将显示颜色顺序从bgr修改为rgb
- OpenCV读取的图片从BGR转换为RGB
- imx6q处理器,linux操作系统平台搭建 从eMMC启动系统
- imx6q处理器,linux操作系统平台搭建 从eMMC启动系统
- 将RGB颜色值转换为UIColor
- RGB颜色与BGR颜色的转换问题
- 实现一个view从顶部移到底部的动画 and 将RGB值转化为颜色
- 用MATLAB将RGB图像中的显示为相同颜色的像索点提取出来
- java:BufferedImage判断图像通道顺序并转RGB/BGR
- Linux修改内核版本
- IOS 将RGB颜色值转换为UIColor
- IOS 将十六进制RGB颜色值转换为UIColor
- BGR to RGB排列
- imx6q处理器,linux操作系统平台搭建 从SD卡启动系统
- 将BGR图像转换成HSV颜色空间的转换
- 将RGB转换成颜色
- 将工厂模式的内容显示,从中文修改为英文
- YUY2转RGB(或BGR)
- 个人学习(九)
- 五、顺序栈
- ToolBar简单实用
- ECMAScript6入门
- summit 6.0 + redhat6.5 + oracle11.2g 安装(1)
- imx6q芯片linux内核版本操作系统,将显示颜色顺序从bgr修改为rgb
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- Story 27-28
- 如何发布自己的Composer包
- UVA-575-Skew Binary (简单数论问题)
- 阿里云官方关于数据安全保护的声明
- 《javascript语言精粹》读书笔记——函数
- HDU
- lintcode——最长上升连续子序列