我遇到了一个我无法弄清楚的问题 -
假设我有任意尺寸的图像。我调整它的大小,使其适合1024x768,同时保持纵横比。我把它放在屏幕上。完成此操作后,如何找到左上角的最终位置?
所以,如果图像比它高,我们最终会得到类似的东西
绿色矩形以不同的尺寸开始。它被调整大小以适合粉红色矩形。我想找到绿色矩形的左上角。
我写了一堆笔记并画了一堆图表,但我得到了所有错误的答案。有人可以解释如何做到这一点?我正在使用python 2.7
答案 0 :(得分:1)
让w
,h
为您图片的大小。
要适应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