linux任意位置显示bmp图片

/*************************************************
功能:封装一个任意位置显示任意大小的bmp
参数一:int 图片显示起始坐标x
参数二: int 图片显示起始坐标y
参数三: int 图片的宽 4字节整数倍
参数四: int 图片的高 4字节整数倍
参数五: char* 图片的路径
返回值:类型int
成功:0
失败:-1
**************************************************/
int show_shapebmp(int x,int y,int w,int h,const char bmpname)
{
int lcdfd;
int bmpfd;
int lcdmem;
int i,j;
char bmpbuf[w
h
3]; //char占一个字节
int lcdbuf[w*h]; // int 占4字节

//打开液晶屏的驱动
lcdfd = open("/dev/fb0",O_RDWR);
// 出错处理
if(lcdfd == -1)
{
	printf("open lcd failed!\n");
	return -1;
}

// 映射lcd(将lcd在内存中的地址告诉你)
lcdmem = (int *)mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,lcdfd,0);
if(lcdmem == NULL)
{
	printf("map lcd failed!\n");
	return -1;
}
// 打开你要显示的图片
bmpfd = open(bmpname,O_RDONLY);
// 出错处理
if(bmpfd == -1)
{
	printf("open %s failed!\n",bmpname);
	return -1;
}
// 在你读取颜色值之前跳过54字节
lseek(bmpfd,54,SEEK_SET);
// 读出bmp图片的颜色值
read(bmpfd,bmpbuf,w*h*3);

// 将读取的3字节数据---》转换成4字节
for(i=0; i<w*h; i++)
	lcdbuf[i] = bmpbuf[3*i]|bmpbuf[3*i+1]<<8|bmpbuf[3*i+2]<<16|0x00<<24; // 0x00[2][1][0]

// 将转换后的数据直接填充到lcd的地址中去(i,j)--->(x+i,y+j)
// 将转换后的数据直接填充到lcd的地址中去(i,h-1-j)--->(x+i,y+j)
for(i=0; i<w; i++)
	for(j=0; j<h; j++)
		*(lcdmem+(y+j)*800+x+i) = lcdbuf[(h-1-j)*w+i];
// 关闭lcd和bmp
close(bmpfd);
close(lcdfd);
// 解除映射
munmap(lcdmem,800*480*4);
return 0;

}

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 要在Linux显示BMP图片,可以使用以下步骤: 1. 安装图像查看器软件,例如GIMP或ImageMagick。 2. 打开终端窗口,使用以下命令安装ImageMagick: sudo apt-get install imagemagick 3. 在终端中,使用以下命令查看BMP图片: display image.bmp 其中,image.bmp是要查看的BMP图片的文件名。 4. 如果要在图形界面中查看BMP图片,可以使用GIMP软件。打开GIMP,然后选择“文件”菜单中的“打开”选项,选择要查看的BMP图片即可。 希望这些步骤能够帮助你在Linux显示BMP图片。 ### 回答2: 在Linux系统中,可以使用多种图形库和工具来显示bmp图片。本文将介绍两种常见的方法:使用ImageMagick和使用feh。 1. 使用ImageMagick: ImageMagick是一个功能强大的图像处理软件,可以在Linux系统中轻松使用。要在Linux系统中使用ImageMagick显示bmp图片,需要按照以下步骤操作: 步骤1:安装ImageMagick。在命令行中输入以下命令: sudo apt-get install imagemagick 此命令将安装ImageMagick软件以及其依赖软件。 步骤2:显示bmp图片。在命令行中输入以下命令: display image.bmp 其中,image.bmp为需要显示bmp图片的文件名。 ImageMagick支持许多参数,可以使用“-geometry”参数控制显示大小,使用“-rotate”参数控制图片旋转等。 2. 使用feh: feh是一个轻量级的图像查看器和管理器,可以在Linux系统中轻松使用。要在Linux系统中使用feh显示bmp图片,需要按照以下步骤操作: 步骤1:安装feh。在命令行中输入以下命令: sudo apt-get install feh 此命令将安装feh软件以及其依赖软件。 步骤2:显示bmp图片。在命令行中输入以下命令: feh image.bmp 其中,image.bmp为需要显示bmp图片的文件名。 feh支持许多参数,例如使用“-g”参数控制显示大小,使用“-r”参数控制图片旋转等。 总之,在Linux系统中,使用ImageMagick和feh都可以很方便的显示bmp图片,根据个人喜好选择其中一个即可。 ### 回答3: Linux可以通过一些软件来显示bmp图片文件,比如GIMP、ImageMagick、feh等等。下面来分别介绍这些软件的使用方法: 1. GIMP:GIMP是一款功能强大的图像编辑软件,在Linux上常见,也可以用来显示bmp文件。使用GIMP,只需要打开软件,然后在菜单栏中选择“文件”-“打开”,找到bmp文件所在的路径,点击“打开”即可显示。 2. ImageMagick:ImageMagick是一款功能也很强大的图像处理软件,可以用来处理各种格式的图像文件。在Linux上使用ImageMagick显示bmp文件的方法是,在终端中输入以下命令: ```bash $ display your_image.bmp ``` 你需要将“your_image.bmp”替换成你自己的bmp文件名称。这个命令会在默认的图片查看器中打开bmp文件。 3. Feh:Feh是一款Linux下的轻量级图片查看器,可以用来显示各种图片格式,包括bmp。使用Feh查看bmp文件的方法是,在终端中输入以下命令: ```bash $ feh your_image.bmp ``` 同样,你需要将“your_image.bmp”替换成你自己的bmp文件名称,这个命令会在Feh中打开bmp文件。你还可以通过添加一些参数来调整图片显示方式,比如: ```bash $ feh --full-screen your_image.bmp ``` 这个命令会以全屏模式显示bmp文件。 总之,Linux有很多可以用来显示bmp文件的软件,选择一款自己喜欢的即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a1269760169

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值