Things more or less are actually working now.

Just need to:

(1) properly scale images that are larger than the screen
(2) find a platform-independant way of constructing the absolute path
(3) check that the file is an image file
(4) actually use the settings filled in on the form