1. найди спецификацию формата.
2. вот что я когда то воял в инсте ...
описывать не буду... разберешся сам
)
#include<conio.h>
#include<process.h>
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
int main(void)
{
FILE *in,*out2,*out3, *out,*out4;
int i;
if ((in = fopen("C:\\ris8.bmp", "rb")) == NULL)
{
fprintf(stderr, "Cannot open input file.\n");
return 1;
}
if ((out = fopen("C:\\ris8_R.bmp", "wb")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
if ((out2 = fopen("C:\\ris8_G.bmp", "wb")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
if ((out3 = fopen("C:\\ris8_B.bmp", "wb")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
if ((out4 = fopen("C:\\ris8_RGB.bmp", "wb")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
for(int i=0;i<54;i++)
{
char b=fgetc(in);
fputc(b, out);
fputc(b, out2);
fputc(b, out3);
fputc(b, out4);
}
i=1;
int nCount=0;
int R,G,B;
while (!feof(in))
{
char b=fgetc(in);
if(i==1) {fputc(b, out); fputc(0, out2); fputc(0, out3); R=b;}
if(i==2) {fputc(0, out); fputc(b, out2); fputc(0, out3); G=b;}
if(i==3)
{
i=0;
fputc(0, out); fputc(0, out2); fputc(b, out3); B=b;
int RGB=(R+G+B)/3;
fputc(RGB, out4); fputc(RGB, out4); fputc(RGB, out4);
}
i++;
nCount++;
}
fclose(in);
fclose(out);
fclose(out2);
fclose(out3);
fclose(out4);
return 0;
}