0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单色BMP位图的显示方法

英创信息技术 作者:英创信息技术 2019-09-29 13:56 次阅读

在工控领域的实际应用中,客户经常需要使用LCD显示屏进行一些简单的文字和图形显示操作,如显示公司的LOGO和开机画面、显示一些重要的参数指标等。英利嵌入式Linux工控主板可以直接支持6种单色点阵LCD显示屏,分别是KS0108控制器的128x64点阵LCD、T6963C控制器的240x128点阵LCD、SED1335控制器的320x240点阵LCD、KS0108控制器的192x64点阵LCD、UC1698U控制器的160x160点阵LCD、YXD控制器的128x64点阵LCD。

对于文字的显示,英利公司已有例程进行介绍,本文将详细介绍单色BMP位图的显示方法。

1、制作符合显示需要的单色BMP位图

使用图形编辑软件制作用来显示的图片,并保存为位图格式,然后使用Windows中的“画图”工具打开该图片,另存为单色位图(注:一定要存为单色位图,否则无法显示)。注意图形的尺寸大小,如果待显示图形大于LCD的尺寸,则无法正确显示。

2、使用英利提供的示例程序进行图形显示

英利提供了一个名为“test_bmp”的测试例程,其中包括了测试程序“test_bmp”以及用于图形显示的API函数。其中,API函数DisplayBmp( . . )中实现了对BMP文件的读取、解析和显示操作,客户将制作好的图片和测试程序test_bmp一同放在英利工控主板的/mnt/nandflash目录中,通过命令行输入如下命令:

[root@EM9X60 /mnt/nandflash]# ./test_bmp logo.bmp 3 30 10

即可以在LCD显示屏上看到显示效果。

该命令的4个参数说明如下:
logo.bmp:英利测试时使用的图片。客户实际使用的时候填写自己的图片名字
3:英利测试使用的是320x240点阵的显示屏,定义为3号屏,因此此处的参数为3。如果使用其他分辨率的LCD,则填写相应的
参数,参数与LCD对应关系如下:
1:KS0108控制器的128x64点阵LCD
2:T6963C控制器的240x128点阵LCD
3:SEED1335控制器的320x240点阵LCD
4:KS0108控制器的192x64点阵LCD
5:UC1698U控制器的160x160点阵LCD
6:YXD控制器的128x64点阵LCD
30:显示屏x方向的起始显示位置。如果不填,默认为0
10:显示屏y方向的起始显示位置。如果不填,默认为0

需注意的是:
1、用于显示的图片必须是单色位图,且图片的长宽尺寸必须小于LCD相应方向(x和y轴)的点阵数,否则无法显示。
2、前两个参数(图片名、显示屏分辨率)必须设置,否则系统报错退出。
3、显示屏参数中,只有数字1-6有效,其余输入均视为无效参数,系统报错退出。
4、后两个参数是用于控制图片显示位置的,如果都不设置,则默认从左上角第一个点开始显示。这两个参数必须同时设置或者
留空,不能只设置一个。同时,如果设置的起始位置造成了图片的溢出(即如果从起始位置开始显示,图片在x或者y轴方向的
尺寸已经大于了该方向剩余的LCD点阵数),也无法正确显示。

3、图形显示示例程序说明

能够使用示例程序进行单色位图显示以后,客户可以以测试程序为蓝本,针对自己的应用设计自己的图形显示程序。test_bmp的代码和说明如下:

#include
#include
#include
#include 'lcd_api.h'
#include 'bmpdisplay.h'
int main( int argc, char** argv )
{
// 如果只设置了图片名和显示屏尺寸,则默认从左上角第一个点开始显示
if( argc == 3 )
{
InitLcd( atoi(argv[2]) );
DisplayBmp( argv[1], 0, 0 );
}
// 如果设置了4个参数,则完全按照参数设置进行配置
else if( argc == 5 )
{
InitLcd( atoi(argv[2]) );
DisplayBmp( argv[1], atoi(argv[3]), atoi(argv[4]) );
}
else
{
printf( 'Parameter fail!\n' );
return -1;
}
sleep( 1 );
LCD_DeInit( );
return 0;
}

该例程很简单,解析命令行传入的参数以后调用英利提供的函数DisplayBmp即可以进行显示。实际应用中,客户用于显示的图片有可能只是一个,显示屏也会固定一种型号,并不需要从命令行传入参数进行解析,此时可以简化上述程序,整个过程只需要如下四条语句:

InitLcd( 3 );
DisplayBmp( 'logo.bmp', 0, 0 );
sleep( 1 );
LCD_DeInit( );

对该示例程序感兴趣的英利公司客户可以来电或通过电子邮件索取相关代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3546

    浏览量

    88731
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35352
收藏 人收藏

    评论

    相关推荐

    【安富莱】【STemWin教程】第11章 BMP图片显示

    `` 本帖最后由 硬汉Eric2013 于 2015-3-26 11:56 编辑 第11章 BMP图片显示 本期主要讲emWin支持的BMP图片显示,官方支持的主要有两种
    发表于 03-26 11:50

    第11章 BMP图片显示

    转stemwin教程本期主要讲emWin支持的BMP图片显示,官方支持的主要有两种显示方法,一种是从外部存储器读取数据到内部存储器然后来显示
    发表于 10-12 10:18

    【emWin实战教程V2.0】第46章 BUTTON-按钮控件显示位图和流位图

    转最新版本教程本章节为大家讲解按钮控件显示位图和流位图方法,之所以做这章节是因为太多初学者问这方面的问题,所以专门做一下。学习本章节前,务必保证已经学习了第12章和第13章。46.1
    发表于 02-28 16:47

    请教下,读取sd卡,u盘里面的bmp图片解码显示

    本帖最后由 hpdell 于 2016-1-12 15:12 编辑 请教下,读取sd卡、u盘里面的bmp图片解码显示,sd卡与u盘里面的bmp图片文件完全一样,图片的位图也都
    发表于 10-24 08:10

    位图显示问题如何解决

    硬件:STM32F103VCt6程序是参照原子歌的位图显示这部分。只是改变了图片的内容,其它的是拷贝位图的源代码,没有操作系统。图片是用BMPCVTST导的,存在内部FLASH里,工程包含了这个文件
    发表于 05-22 14:57

    怎样在OLED或其他单色屏上显示图片

    在OLED或其他单色屏上显示图片,为减小Flash占用,需要转换为单色位图。对于主控是sdd1306的oled的取模方式:打开Image2Lcd。按照如图左侧进行配置,将图片转换为
    发表于 07-15 08:24

    MDA显示接口引脚定义图(单色)

    MDA显示接口引脚定义图(单色) MDA 即 Hercules(大力神)单色显示卡,显示卡端的接口为 9 针母插座:
    发表于 11-27 20:16 1870次阅读
    MDA<b class='flag-5'>显示</b>接口引脚定义图(<b class='flag-5'>单色</b>)

    关于AD中如何添加LOGO的方法

    利用 Windows 画图工具,把片转换成 单色BMP 位图
    发表于 09-09 16:05 0次下载

    基于STM32芯片的LCD显示屏的BMP图片显示

    基于STM32芯片的LCD显示屏的BMP图片显示
    发表于 01-18 14:39 61次下载

    BMPtoPCB软件的免费下载(bmp位图转PCB文件工具)

    BMPtoPCB是一个制作电路板PCB的小软件,做logo的时候能够用上,把bmp格式的图片直接转换成pcb的文件。 使用方法 1.首先制作一幅 BMP图形,把你需要的汉字或记号包含在内。然后运行本
    发表于 11-29 15:24 28次下载
    BMPtoPCB软件的免费下载(<b class='flag-5'>bmp</b><b class='flag-5'>位图</b>转PCB文件工具)

    Blackfin下载产品代码的位图图像文件(BMP)解码器

    Blackfin下载产品代码的位图图像文件(BMP)解码器
    发表于 06-08 11:46 1次下载
    Blackfin下载产品代码的<b class='flag-5'>位图</b>图像文件(<b class='flag-5'>BMP</b>)解码器

    嵌入式linux操作framebuffer显示bmp图片

    编译后拷贝进开发板即可使用使用方法./fb_show_bmp test.bmp显示的图片由参数指定,上面指令中test.bmp为测试用的
    发表于 11-01 17:06 10次下载
    嵌入式linux操作framebuffer<b class='flag-5'>显示</b><b class='flag-5'>bmp</b>图片

    stm32单片机OLED显示图片 位图转换 Image2Lcd使用

    在OLED或其他单色屏上显示图片,为减小Flash占用,需要转换为单色位图。对于主控是sdd1306的oled的取模方式:打开Image2Lcd。按照如图左侧进行配置,将图片转换为
    发表于 11-18 15:51 16次下载
    stm32单片机OLED<b class='flag-5'>显示</b>图片 <b class='flag-5'>位图</b>转换 Image2Lcd使用

    Linux下BMP图片添加水印

    BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发
    的头像 发表于 08-16 11:20 1252次阅读
    Linux下<b class='flag-5'>BMP</b>图片添加水印

    有关BMP位图的原理和解析

    BMP是 Bitmap(位图)的简称,是windows显示图片的基本格式。
    的头像 发表于 05-20 16:15 2514次阅读
    有关<b class='flag-5'>BMP</b><b class='flag-5'>位图</b>的原理和解析