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

时间:2015-06-28 22:11:23

标签: python image algorithm python-2.7 image-resizing

我遇到了一个我无法弄清楚的问题 -

假设我有任意尺寸的图像。我调整它的大小,使其适合1024x768,同时保持纵横比。我把它放在屏幕上。完成此操作后,如何找到左上角的最终位置?

所以,如果图像比它高,我们最终会得到类似的东西 this

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

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

1 个答案:

答案 0 :(得分:1)

wh为您图片的大小。

要适应1024的宽度,我们必须按以下方式缩放图像:

>>> r=1024./w

但是,如果图像较高,在按r缩放后,其高度将不适合屏幕,因此在这种情况下缩放系数为:

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

缩放图像左上角的坐标为:

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

编辑:

计算topleft点的一个方便的函数(也适用于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