3
我正在使用DisplacementMapFilter
在平面貼圖上創建類球體效果。我的問題是,我也想同步一些標籤到這張地圖。我在平面地圖上爲它們的位置設置了x/y座標,但我需要將它們映射到現在位移的圖像。將重疊同步到位移貼圖過濾器
我希望能夠使用包含位移貼圖的BitmapData進行此操作,以便更改位圖更改位移過濾器和標籤位置。此外,標籤不會是靜態的,而且準確性相當重要。
我正在使用DisplacementMapFilter
在平面貼圖上創建類球體效果。我的問題是,我也想同步一些標籤到這張地圖。我在平面地圖上爲它們的位置設置了x/y座標,但我需要將它們映射到現在位移的圖像。將重疊同步到位移貼圖過濾器
我希望能夠使用包含位移貼圖的BitmapData進行此操作,以便更改位圖更改位移過濾器和標籤位置。此外,標籤不會是靜態的,而且準確性相當重要。
有一個在DisplacementMapFilter引用的公式:
dstPixel[x, y] =
srcPixel[
x + ((componentX(x, y) - 128) * scaleX)/256,
y + ((componentY(x, y) - 128) *scaleY)/256)
]
componentX/Y
是位圖中的顏色通道(可以綁定任何通道座標)。
據我所知,你需要移動地圖標籤過濾器會做。只需用getPixel32(x, y)
即可獲取標籤座標(x,y),樣本源位圖。然後你需要找出哪些字節需要爲x,y - 我猜默認情況下它會是R,G分量。然後使用公式來獲得移位的標籤座標。
注意:getPixel32以ARGB格式返回uint顏色。使用移位運算符(>>
)獲取顏色分量:
uint ARGB = bitmap.getPixel32(x, y);
int B = ARGB & 0xFF;
int G = (ARGB >> 8) & 0xFF;
int R = (ARGB >> 16) & 0xFF;
謝謝,但我發現這個算法提供的是謊言。它是'x - ((componentX(x,...'和'y - ((componentY(x ...',不是'+'),因此它可以很好地工作。 –