0
나는이 같은 파일에서 높이를 추출하려고 : 픽셀은 INT32 배열로로드 http://visibleearth.nasa.gov/view.php?id=73934빅 - 엔디안 변환
내가 그나마
private Int16[] heights;
private int Width, Height;
public TextureData(Texture2D t)
{
Int32[] data = new Int32[t.Width * t.Height];
t.GetData<Int32>(data);
Width = t.Width;
Height = t.Height;
t.Dispose();
heights= new Int16[t.Width * t.Height];
for (int i = 0; i < data.Length; ++i)
{
heights[i] = ReverseBytes(data[i]);
}
}
// reverse byte order (16-bit)
public static Int16 ReverseBytes(Int32 value)
{
return (Int16)(((value << 8) | (value >> 8)));
}
알고 왜 그러나 높이가 맞지 않습니다 ... 빅 엔디안 변환이 잘못되었다고 생각합니다. 제발 도와주세요.
public static int ReverseBytes(int value)
{
int sign = (value & 0x8000) >> 15;
int msb = (value & 0x7F) >> 7;
int lsb = (value & 0xFF) << 8;
return (msb | lsb | sign);
}
이 괜찮 :
이 결과는 http://i.imgur.com/FukdmLF.png
편집 ... 높이가 예상보다 높은입니까? 이유는 모르겠지만 여전히 잘못되었습니다 ...