fcds-lab-2015/c_sequential/haar/input_generator.c

55 lines
1.0 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
// change size to make image bigger/smaller
#define IMGSIZE 0x3000 // 0x6000
#define image(x,y) pixels[((unsigned int)y*size+x)]
// generates an image
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("usage: %s [create_file]", argv[0]);
return 0;
}
unsigned long long int size;
unsigned long long int x, y;
FILE *out;
srand(time(NULL));
out = fopen(argv[1], "wb");
if (out == NULL ) {
perror(argv[1]);
exit(EXIT_FAILURE);
}
size = IMGSIZE;
printf("%lld\n", size);
fwrite(&size, sizeof(size), 1, out);
fflush(out);
int *pixels = (int*) malloc(size * size * sizeof(int));
if (pixels == NULL ) {
perror("malloc pixels");
exit(EXIT_FAILURE);
}
for (y = 0; y < size; y++) {
for (x = 0; x < size; x++) {
image(x,y)= (rand()&0xFFFF);
}
}
fwrite(pixels, size * size * sizeof(int), 1, out);
fflush(out);
fclose(out);
free(pixels);
return EXIT_SUCCESS;
}