diff --git a/src/main.c b/src/main.c index 1355ecb..a62193f 100644 --- a/src/main.c +++ b/src/main.c @@ -212,7 +212,18 @@ horizontal_flip(unsigned int* buf, int size, int w) { unsigned int* vertical_flip(unsigned int* buf, int size, int w, int h) { + unsigned int* flip = malloc((w * h) * sizeof(unsigned int)); + int idx = 0; + for(int i = h - 1; i >= 0; i--) { + for(int k = 0; k < w; k++) { + flip[idx] = buf[i * w + k]; + idx++; + } + } + free(buf); + + return flip; } @@ -247,21 +258,22 @@ main() // test = (test << 3) | (test >> (8 - 3)); // print_bits_int(test); - unsigned int color = encoder(200, 10, 50); - color = set_alpha(color, 100); - print_bits_int(color); - // unsigned int channelled_color = channel_mask(color, 'g'); - color = chromatic_circular_shift(color, 3); - print_bits_int(color); - // int width, height; - // char magic_number[3]; - // int max_val; - // - // unsigned int* buf = - // ppm_encode("../test.ppm", &width, &height, &max_val, - // magic_number); + // unsigned int color = encoder(200, 10, 50); + // color = set_alpha(color, 100); + // print_bits_int(color); + // // unsigned int channelled_color = channel_mask(color, 'g'); + // color = chromatic_circular_shift(color, 3); + // print_bits_int(color); + int width, height; + char magic_number[3]; + int max_val; + + unsigned int* buf = + ppm_encode("../test.ppm", &width, &height, &max_val, + magic_number); // ppm_apply_brightness(buf, (width * height), .5); - // ppm_decode(buf, (width * height), "../new.ppm", &width, &height); - // free(buf); + buf = vertical_flip(buf, (width * height), width, height); + ppm_decode(buf, (width * height), "../new.ppm", &width, &height); + free(buf); return 0; }