diff --git a/.DS_Store b/.DS_Store index 5008ddf..7192c57 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/include/image/utils.h b/include/image/utils.h index ef26136..2038416 100644 --- a/include/image/utils.h +++ b/include/image/utils.h @@ -57,4 +57,6 @@ u32to_u64(const unsigned int clr); unsigned int u64to_u32(const unsigned long clr, const unsigned long u64_div); +void __attribute__((overloadable)) print_attr(const PPM *src); + #endif diff --git a/src/imgio.c b/src/imgio.c index 9608ae1..2b9899e 100644 --- a/src/imgio.c +++ b/src/imgio.c @@ -233,3 +233,11 @@ inherit_from_ppm(const PPM* in) }; return image; } + +/** The Second image gets merged into the first. + * The First image obtains attributes from the second image that were not found. +*/ +PPM +merge_ppm(const PPM* in_1, const PPM* in_2) { + if(in) +} diff --git a/src/main.c b/src/main.c index 56f8b58..96beafb 100644 --- a/src/main.c +++ b/src/main.c @@ -1,20 +1,27 @@ #include #include "image/utils.h" -#include "image/filters.h" -// #include "transformations.h" +// #include "image/filters.h" +// #include "image/transformations.h" #include "image/imgio.h" int main() { - PPM out = { - .name = "../test.ppm", - }; + JPEG out_1 = { + .name = "../MF8jno.jpg", - unsigned int* src_buf = ppm_load("../assets/8ktest.ppm", &out); - unsigned int* blurred = box_blur(src_buf, &out, 10); - ppm_save(blurred, out); - free(src_buf); - free(blurred); + }; + + // PPM out_2 = inherit_from_jpeg(&out_1, '6'); + // + // + PPM out = inherit_from_jpeg(&out_1, '6'); + // print_attr(&out); + // unsigned int* src_buf = ppm_load("../assets/8ktest.ppm", &out_2); + // unsigned int* blurred = box_blur(src_buf, &out_2, 10); + // unsigned int* flip = u32_rotate(src_buf_jpeg, ); + // ppm_save(blurred, out_2); + // free(src_buf); + // free(blurred); return 0; } diff --git a/src/utils.c b/src/utils.c index b1ef2db..a04e804 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,4 +1,5 @@ #include "image/utils.h" +#include unsigned long u32to_u64(const unsigned int clr) @@ -21,3 +22,12 @@ u64to_u32(const unsigned long clr, const unsigned long u64_div) return ENCODE_ARGB((a / u64_div), (r / u64_div), (g / u64_div), (b / u64_div)); } + +// Utilizing new knowledge below + +void +__attribute__((overloadable)) +print_attr(const PPM *src) { + printf("Name: %s\nFMT: %c\nWidth: %i, Height: %i\nLength: %i", + src->name, src->fmt, src->width, src->height, src->len); +}