> So an extra header file is (from what I understand) not allowed... Stupid rules
This doesn't make any sense at all.
The way two .c files communicate is with a .h file. Yes there are ways around it, but none of them stack up as good long term solutions.
For example, one alternative is to leave your Image.c file "as is", and remove Image_lib.c from the makefile. So long as there is only ONE source file including another source file, then you can scrape by.