bmp_24_16.c

来自「24BMP图转16」· C语言 代码 · 共 55 行

C
55
字号
#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 + =
减小字号Ctrl + -
显示快捷键?