linux图像显示(二)bmp图片

linux图像显示

linux图像显示(一)framebuffer操作

linux图像显示(二)bmp图片

linux图像显示(三)使用libjpg处理jpg图片

linux图像显示(四)使用libpng处理png图片

linux图像显示(五)使用freetype处理矢量字体

 

BMP图片是未经压缩的图片,其内容包括头信息颜色有效信息

头信息包括下面几个部分:文件头,信息头,调色板

我们可以使用一个结构体来表示头部信息

/* 
 * 这句话的意思是地址采用1字节对齐 
 * 由于gcc默认是4字节对齐,而我们这里需要和bmp的头部信息一一对应,所以应该采用1字节对齐方式
 */
#pragma pack (1) 

typedef struct { 
    uint8_t bf_type[2]; // 2Bytes,必须为"BM",即0x424D 才是Windows位图文件
    uint32_t bf_size; // 4Bytes,整个BMP文件的大小
    uint16_t bf_reserved1; // 2Bytes,保留,为0
    uint16_t bf_reserved2; // 2Bytes,保留,为0
    uint32_t bf_off_bits; // 4Bytes,文件起始位置到图像像素数据的字节偏移量
} t_bmp_file_header;

typedef struct {
    uint32_t bi_size; // 4Bytes,INFOHEADER结构体大小,存在其他版本I NFOHEADER,用作区分
    uint32_t bi_width; // 4Bytes,图像宽度(以像素为单位)
    int32_t bi_height; // 4Bytes,图像高度,+:图像存储顺序为Bottom2Top,-:Top2Bottom
    uint16_t bi_planes; // 2Bytes,图像数据平面,BMP存储RGB数据,因此总为1
    uint16_t bi_bit_count; // 2Bytes,图像像素位数
    uint32_t bi_compression; // 4Bytes,0:不压缩,1:RLE8,2:RLE4
    uint32_t bi_image_size; // 4Bytes,4字节对齐的图像数据大小
    uint32_t bi_x_pels_per_meter; // 4Bytes,用象素/米表示的水平分辨率
    uint32_t bi_y_pels_per_meter; // 4Bytes,用象素/米表示的垂直分辨率
    uint32_t bi_clr_used; // 4Bytes,实际使用的调色板索引数,0:使用所有的调色板索引
    uint32_t bi_clr_important; // 4Bytes,重要的调色板索引数,0:所有的调色板索引都重要
} t_bmp_info_hearder;

typedef struct {
    uint8_t bp_blue; // 指定蓝色强度
    uint8_t bp_green; // 指定绿色强度
    uint8_t bp_red; // 指定红色强度
    uint8_t bp_reserved; //保留,设置为0
} t_bmp_pallet;

typedef struct {
    t_bmp_file_header bmp_file_header;
    t_bmp_info_hearder bmp_info_hearder;
    t_bmp_pallet bmp_pallet;
} t_bmp_header;

/* 取消地址对齐 */
#pragma pack ()

当我们读取头信息后,可以得到图像宽(bi_width)、高(bi_height)、bpp(bi_bit_count)、颜色数据的偏移量(bf_off_bits)

根据这些信息,获得RGB数据,我们就可以通过操作framebuffer显示BMP图像了

 

### 回答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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值