summaryrefslogtreecommitdiffstats
path: root/Tools/rawint/src/main.c
blob: 20308cd37fc48245f653c30bab23dc4763a34a2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
        int retval;
        FILE *fraw, *frawmask, *frawint;
        unsigned char mrgb[3];
        int totsize, x, y;
        
        retval = 0;
        
        if (argc < 4) {
        	fprintf(stderr, "%s (C) 2004 by oliver\n", argv[0]);
        	fprintf(stderr, "Usage: %s x-res y-res in.raw mask.raw out.int\n",
      			argv[0]);
       	} else {     
            x = atoi(argv[1]);
            y = atoi(argv[2]);
        	if (NULL == (fraw = fopen(argv[3], "rb"))) {
        		perror("fopen(IMAGE_FILE)");
        		retval = 1;
       		} else if (NULL == (frawmask = fopen(argv[4], "rb"))) {
       		        perror("fopen(MASK_FILE)");
        		retval = 1;
       		} else if (NULL == (frawint = fopen(argv[5], "wb"))) {
       		        perror("fopen(OUT_FILE)");
        		retval = 1;
         	} else {        
       		        for (totsize = 0; totsize < (x*y); totsize++) {      
       		                fread(&mrgb, 1, 1, frawmask);
       		                fwrite(&mrgb, 1, 1, frawint);
       		                fread(&mrgb, 1, 3, fraw);
       		               	fwrite(&mrgb, 1, 3, frawint);
       		        }
       		        fprintf(stdout, "Done interleaving\n");
       		        fclose(fraw);
       		        fclose(frawmask);
       		        fclose(frawint);
       		}        
       	}        
        	
	return retval;
}