查看: 3518|回复: 1

探讨Linux开发板怎么控制屏幕显示点颜色呢?

[复制链接]

该用户从未签到

发表于 2016-8-24 10:41:54 | 显示全部楼层 |阅读模式
分享到:
Linux开发板怎么控制屏幕显示点颜色呢?
不多说先上代码!!!


  上面程序是操作屏幕显示蓝色的,为什么是显示蓝色呢?
可以看到 int colour这一个参数的值是0x0000ff,颜色的产生是由三原色(红绿蓝),这里有六位数据,ff是占低两位代表是红绿蓝的蓝色位,如果我想要红色呢?那应该怎么设置,顺便说一下,值越大,所代表的颜色越深,每一原色最高ff即256。红色的应该这样设置 int colour = 0xff0000,绿色也是一样的道理int colour = 0x00ff00。需要什么颜色在哪里调就可以了,这是你是颜色设计师!!!
那蓝色(颜色)是如何显示到LCD屏幕上的呢?
看会代码,只有寥寥的几行不用怕,刷图如炒菜。
先准备原料(打开图片.bmp后缀)->准备锅(打开显示设备fb0)->拿碗装来等吃的(mmap函数操作)->放菜爆炒感觉有点香(memcpy内存复制)->完成(显示)
核心函数原型一览:
int open(const char *path, int oflag, ...  );
void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
void *memcpy(void *dest, const void *src, size_t n);
怎么查到这些函数呢?学会使用man手册喔,走上人生巅峰的第一步呀。
主要函数解释:
mmap函数将一个文件或者其它对象映射进内存;
addr:映射区的开始地址,设置为0时表示由系统决定映射区的起始地址。
len:映射区的长度。//长度单位是 以字节为单位,不足一内存页按一内存页处理;
prot:期望的内存保护标志,不能与文件的打开模式冲突。是以下的某个值,可以通过or运算合理地组合在一起;
flags:指定映射对象的类型,映射选项和映射页是否可以共享。它的值可以是一个或者多个以下位的组合体;
fildes:有效的文件描述词。一般是由open()函数返回,其值也可以设置为-1,此时需要指定flags参数中的MAP_ANON,表明进行的是匿名映射;
off:被映射对象内容的起点。
memcpy函数从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
这时候够了吗?当然不够,要放大招了?就是显示图片!!!
不多说先上图装x


程序前半部分和第一图片程序一样的,显示图片的程序在其后面加上去就可以了。显示图片好像多了很多一样,有点怕怕,怎么办???
没事,不要怂!!!
给你一一道来!
先准备原料(打开图片.bmp后缀)->准备锅(打开显示设备fb0)->拿碗装来等吃的(mmap函数操作)->放菜爆炒感觉有点香(memcpy内存复制)->完成(显示)
文章来源于网络
回复

使用道具 举报

该用户从未签到

发表于 2022-6-14 11:25:42 | 显示全部楼层
过来看看,怎么没看到效果啊

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

手机版|小黑屋|与非网

GMT+8, 2024-10-18 16:43 , Processed in 0.127638 second(s), 20 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.