Rein vom Prizip her erzeugst du erstmal mit new Image() ein Image-Objekt, gibst ihm das src von dem Bild und kannst nun auf Höhe und Weite zugreifen. Jetzt musst das ganze mit der Fenstergrößer vergleichen und ggf. verkleinern, wobei du, wenn du eines verkleinerst das andere um das gleiche Verhältniss verkleinern musst. Das geht relativ einfach per JS.
Du könntest auch das Bild solange es Größer ist als das Fenster in einer while-Schleife immer um einen festen Wert verkleinern.
Wie soll das denn genau ablaufen? Willst du nur das Bild in dem Fenster öffnen oder auch anderen Inhalt? Willst du das Bild in einem PopUp öffnen, oder soll es schon beim Laden der Seite agepasst werden?