Look at SVG coding (calibre's cover uses it to maintain Aspect)
Code:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="100%" height="100%" viewBox="0 0 463 700" preserveAspectRatio="xMidYMid meet">
<image width="463" height="700" xlink:href="cover.jpeg"/>
</svg>
Mine is smaller than the screen but renders full (I don't care if I have fine details except for maps with writing

)