将一个BMP文件转化为二进制文件,并且存在一个数组中
请问大家,怎样子将一个BMP图片用程序转化为一个文本文件,并且存在一个数组中,我知道这个有些程序可惜实现,但现在我的需要自己写个程序完成它,麻烦各位帮忙哦!
------解决方案--------------------之前在做uboot里的splash image,需要将bmp文件转换为一个数组,下面是我写的一个,亲测可用,生成文件之后自己加上数组的名字就好,用法 ./xx.out xx.bmp xx.c
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i, fd, ret, fd_out;
unsigned char buf[16] = "0";
unsigned char buf_out[6] = "0";
if (argc != 3) {
printf("usage: ./bmp_2_c a.bmp a.c\n");
exit(-1);
}
fd = open(argv[1], 0666, O_RDWR);
if (fd < 0) {
perror("open error");
exit(-1);
}
fd_out = open(argv[2], O_RDWR
------解决方案-------------------- O_CREAT, 0644);
if (fd_out < 0) {
perror("open error");
exit(-1);
}
while ((ret = read(fd, buf, 16)) != 0) {
for (i = 0; i < ret; i++) {
snprintf(buf_out, 6, "0x%x, ", buf[i]);
if (buf[i] >= 0x0 && buf[i] <= 0xf) {
buf_out[3] = buf_out[2];
buf_out[2] = '0';
buf_out[4] = ',';
&nb