There is still a bit of missing image at the bottom, but fewer.
I added Self.UpdateNow after I resized my Offscreen image (who is displayed in Paint.Graphics.Draw Picture.
The OffscreenPict is complete (miss nothing in the debuger).
I assume you just need to scale proportionally and use the max.height for the final image as reference.
Proportional scaling can be achived f.e. using a method like:
Function Scale_Proportional(Pic as Picture, Width as integer, Height as Integer) As Picture
If pic=Nil Then Return Nil
// calculate the scale factor
Dim factor As Double = Min( Height / Pic.Height, Width / Pic.Width )
// Calculate new size
dim w as integer = Pic.Width * factor
dim h as integer = Pic.Height * factor
// create new picture
Dim NewPic As New Picture( w, h )
// draw picture in the new size
NewPic.Graphics.DrawPicture( Pic, 0, 0, w, h, 0, 0, Pic.Width, Pic.Height )
// return scaled image
Return NewPic
End Function