If you want a challenge try this.
Use HAM6 and color palette cycle.
Load from disk the image and keep the memory footprint minimal.
Variable resolution depending on the image source.
So these are the steps your program takes.
Starting with a file name parameter.
Reading the file header.
Depending on what the file header said or switch statments made define the basis hardware settings.
Allocate a memory chunk for screen buffer, and copper list.
Inner program loop that translates the file to the desired format.
when the whole file is passed through that and the file size is known due to reading the header paint it on screen.
Wait for a input to stop program and deallocate resources used.