2016-11-25 40 views
0

考慮在座標821, 435處的1920, 1017像素圖像上的點,它位於中間的某處。現在,將圖像縮小至1243, 633像素大。顯然,我們的觀點不再處於這些座標上,而是與圖像一起縮小。我將如何計算新點的座標將是什麼?圖像保存點位置的比例分辨率

對於以下假設originalX = 1920 & newX = 1243而我們只是解決了第一個值x現在(最終做了y規模)

我已經做了newX/originalX得到0.64739583我可以使用做originalX * 0.64739583並得到1243,表示newX64.739583%originalX。現在回到我們以前的點x,821.新點的x預計爲482,除了originalX * 0.64739583 = 531482531,使他們有望與64.7

縮放%什麼是正確的計算(如果這些描述的計算甚至錯點不匹配,並且畫面的部分是縮放錯誤)能夠獲得縮放點的新座標?

點的一些例子前/縮放後:

  • old = {width=1920, x=1807, y=996}, new = {width=1280, x=1167, y=698}
  • old = {width=1920, x=1178, y=814}, new = {width=1280, x=1138, y=516}
  • old = {width=1920, x=5, y=831}, new = {width=1517, x=5, y=693}
+0

'x是預計將是482' - 預計由誰? – MBo

+0

@MBo該點是位於直接中心並稍微偏移的圖像中的GUI的特定位置,它是程序的屏幕截圖。預計'x'是'482'是改變程序分辨率的結果(在這種情況下,將其取出爲最大),從而使分辨率更小。 '821'在未最大化之前是'x','482'在之後。 – Scarsz

回答

0

如果這樣的位置真的發生,那麼縮放不是線性像

NewX = X * NewWidth/OldWidth 

相反,我看到了未來:沒有脫屑,但圖像的換擋,同時保持中央位置

middle of 1920 = 960 
960 - 821 = 139 
middle of 1243 = 621 
621 - 482 = 139 ! 

所以變規律的樣子(我不能要求它爲簡單的例子)

NewX = NewWidth/2 + (OldX - OldWidth/2) 
+0

不幸的是不是一個完美的結合,但絕對是我提供的樣本的一個很好的嘗試。我增加了一些;我仍然無能爲力。 – Scarsz

+0

你能展示一張這些魔法轉換的圖片嗎? (注意與第一個新示例中的右邊相同的區別) – MBo