2015-11-05 38 views
0

所以我通過本地API從相機制作圖像。問題是,我還有一個算法來計算一些東西(用位圖),並且問題出現時,當分辨率太高(例如3000x2500)時,因爲我需要等待太多時間。通過數學公式獲得低分辨率位圖的座標(像素),並將它們放入高分辨率位圖的相同位置Android

所以首先出現什麼在我的腦海裏,它像一個解決辦法:

  1. 轉換從位圖的低分辨率(例如600×800)。
  2. 使用此低分辨率位圖(計算某些東西並計算座標位於此低分辨率位圖上)。
  3. 獲取確切的像素座標並通過一些公式(計算寬度/高度或像素?)將它們放到相同的位置,但放在源位圖上(高分辨率)。

那麼我該如何實現這一部分?我認爲這是可能的,但不知道究竟需要做什麼。
謝謝!

+0

不明白誰downvote這一點。告訴我什麼是錯誤的和不適當的修改。 – XTL

+0

如果你知道如何轉換分辨率,使用你的算法等。比簡單的轉換座標只需乘以比例值就可以解決什麼問題?或者只是問你的問題更具體的......你的輸入是什麼,你應該輸出什麼? – Prizoff

+0

哪一部分對您有用?將您的位圖轉換爲低分辨率還是以比例獲取大位圖中的像素位置? –

回答

1

OK,這是你所需要的

假設你已經計算出了一些的x,y的值你的低分辨率圖像:

int lowResX, lowResY; 

比把它們轉換成高分辨率:

double scaleRatio = hiResImageWidth/lowResImageWidth; //be sure to use here double or float values as the result of integer division will be int, and not the double/float! 
int hiResX = (int) (lowResX * scaleRatio); 
int hiResY = (int) (lowResY * scaleRatio); 

這是所有

+0

謝謝,它的工作兄弟!:) – XTL

1

如果你知道你正在尋找您在W與X,您在W y位置,H位圖,然後在X,Y,H位圖只是簡單的比

X/W = X/W,你可以輕鬆解決:X = X */W

同樣你Y = Y * H/H

+0

所以我可以通過這個公式得到比率:Ratio = SourceWidth/LowResWidth。 但謝謝你的回覆! – XTL