📄 bmp_24_16.c
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include "bmp_head.h"int main(){ int fd_r; int fd_w; char buf_head[55]; unsigned char buf_24[3]; unsigned char buf_16[2]; unsigned int bmp_24 = 0; unsigned short bmp_16 = 0;// info_bmp("a.bmp"); if((fd_r = open("a.bmp", O_RDONLY)) < 0) { printf("open a.bmp error\n"); exit(0); } if((fd_w = open("b.bmp", O_CREAT | O_TRUNC | O_WRONLY)) < 0) { printf("open b.bmp error\n"); exit(0); } read(fd_r, buf_head, 54); write(fd_w, buf_head, 54); while(read(fd_r, buf_24, 3) > 0) { bmp_16 = 0; bmp_16 |= ((buf_24[2] >> 3) & 0x1f); bmp_16 <<= 6; bmp_16 |= ((buf_24[1] >> 2) & 0x3f); bmp_16 <<= 5; bmp_16 |= ((buf_24[0] >> 3) & 0x1f); buf_16[0] = (char)bmp_16; buf_16[1] = (char)(bmp_16 >> 8); write(fd_w, buf_16, 2); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -