调整大小以适合屏幕后找到图像的左上角

Find upper left of image after resizing to fit screen

我有个问题一直没弄清楚-

假设我有一张任意尺寸的图像。我调整它的大小,使其适合 1024x768,同时保持纵横比。我把它放在屏幕中央。这样做之后,我怎样才能找到左上角的终点呢?

因此,如果图片的宽度大于高度,我们最终会得到类似

绿色矩形的起始尺寸不同。它被调整大小以适应粉红色的矩形。我想找到绿色矩形的左上角。

我写了一堆笔记,画了一堆图表,但我得到的答案都是错误的。有人可以解释如何做到这一点吗?我正在使用 python 2.7

wh 为图片的大小。

为了适应 1024 的宽度,我们必须按以下比例缩放图像:

>>> r=1024./w

但是,如果图片比较高,按r缩放后,它的高度将不适合屏幕,所以在这种情况下缩放系数为:

>>> if h*r > 768: r=768./h

缩放后的图片左上角坐标为:

>>> (1024-w*r)*0.5,(768-h*r)*0.5

编辑:

计算左上角点的便捷函数(也适用于 Python 2.x):

def topLeft(w,h,screenw=1024,screenh=768):
    r=float(screenw)/float(w)
    if h*r > screenh: r=float(screenh)/float(h)
    return (screenw-w*r)*0.5,(screenh-h*r)*0.5