当前位置: 技术问答>linux和unix
如何在linux(终端:ctrl+alt+F1之类的。绝非虚拟终端)下显示256色或24位的BMP图片?
来源: 互联网 发布时间:2016-10-16
本文导语: 通过设置vga=0x314。我已实现显示16位色(不是16色,网上一群菜鸟拿个别人显示16色的贴子拿着到处转)的图片。这种显示模式下是RGB565的 如果把vga设成别的就能支持256色或是24位真彩色的。但是我不知道如何将图片...
通过设置vga=0x314。我已实现显示16位色(不是16色,网上一群菜鸟拿个别人显示16色的贴子拿着到处转)的图片。这种显示模式下是RGB565的
如果把vga设成别的就能支持256色或是24位真彩色的。但是我不知道如何将图片信息读到fb文件中显示。因为24位的话RGB一共有24位也就是三字节,没办法读进显示设备文件中。16位色正好是二字节。能用unsigned short型的。高手指点.
注:要直接朝显示设备(/dev/fb)里写的。说什么双击直接打开的请不要进来
如果把vga设成别的就能支持256色或是24位真彩色的。但是我不知道如何将图片信息读到fb文件中显示。因为24位的话RGB一共有24位也就是三字节,没办法读进显示设备文件中。16位色正好是二字节。能用unsigned short型的。高手指点.
注:要直接朝显示设备(/dev/fb)里写的。说什么双击直接打开的请不要进来
|
需要设定framebuffer参数。不然只支持16位色。
|
256
m_nFbfd = open("/dev/fb0", O_RDWR);
m_pFb = (short *)mmap( 0, SCREEN_WIDTH * SCREEN_HEIGHT * 2, PROT_READ | PROT_WRITE, MAP_SHARED, m_nFbfd, 0);
然后对m_pFb操作即可
m_nFbfd = open("/dev/fb0", O_RDWR);
m_pFb = (short *)mmap( 0, SCREEN_WIDTH * SCREEN_HEIGHT * 2, PROT_READ | PROT_WRITE, MAP_SHARED, m_nFbfd, 0);
然后对m_pFb操作即可