*** 作流程就是
1、打开设备open("/dev/fb0", O_RDWR)
2、然后通过ioctrl用相应的命令去获取显示屏的参数,
3、内存映射,memmap()将帧缓存的显存映射到用户控件的一块内存空间,
4、然后对memmap函数返回的指针 *** 作就可以直接往屏幕上写数据了。
至于颜色问题,你到网上找一下配色方案,每一种颜色都对应一个十六进制数,将这个十六进制数
写进去,就是一个颜色点……
两种实现,一是用 framebuffer,二是开 X 服务。相对来说,低性能的嵌入式用 framebuffer 更好。如果性能好可以用 X 服务实现图形显示。前者基于内核的显示驱动,后者看 X 服务的驱动了。
X 服务可以跑很多软件不需要重新开发,但 c/s 架构效率不是很好。
framebuffer 是软件直接 *** 作硬件的存储器,性能实现比较好。但很多功能都要自己写代码实现。
显示图片在 fb 里面我要是没记错,就是把图片解码成你的软件支持的格式,之后把这部分数据写入 fb 内存。
怎么弄就别找我了。建议看看相关的开发文章。
还有就是 QT 库本身就有直接 fb 输出的函数库,GTK 似乎也有,但目前好像还不是完全可用。用他们作为过渡函数库还不错的。但要注意他们的软件协议!
举个例子吧:
离散和线性图
第一个脚本,script1.py 完成如下任务:
创建3个数据集(xData,yData1和yData2)
创建一个宽8英寸、高6英寸的图(赋值1)
设置图画的标题、x轴标签、y轴标签(字号均为14)
绘制第一个数据集:yData1为xData数据集的函数,用圆点标识的离散蓝线,标识为"y1 data"
绘制第二个数据集:yData2为xData数据集的函数,采用红实线,标识为"y2 data"
把图例放置在图的左上角
保存图片为PNG格式文件
script1.py的内容如下:
import numpy as np
import matplotlib.pyplot as plt
xData = np.arange(0,10,1)
yData1 = xData.__pow__(2.0)
yData2 = np.arange(15,61,5)
plt.figure(num=1, figsize=(8,6))
plt.title('Plot 1', size=14)
plt.xlabel('x-axis', size=14)
plt.ylabel('y-axis', size=14)
plt.plot(xData, yData1, color='b', linestyle='--', marker='o', label='y1 data')
plt.plot(xData, yData2, color='r', linestyle='-', label='y2 data')
plt.legend(loc='upper left')
plt.savefig('images/plot1.png', format='png')
所画之图如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)