Dim InputStream1 As InputStream
Dim B1 As Byte , B2 As Byte
Dim buffer(MaxLenFile) As Byte
InputStream1 = File.OpenInput (File.DirRootExternal, NomeFileDEM)
count = InputStream1.ReadBytes (buffer,0,MaxLenFile-1)
InputStream1.Close
For i=0 To MaxLenFile-1 Step 2
B1=buffer(i) : B2=buffer(i+1) : H=Bit.AND(B1, 255)*256+Bit.AND(B2, 255)
If H < MaxAltezza Then
lintValor = (H / MaxAltezza) * 1500
Reflejo = getReflexion2 (H)
If H <= 0 Then
R = 0: G = 0: B = 255
Else
If lintValor <= 250 Then
lauxval = lintValor
R = 0 / Reflejo: G = (180 + lauxval * 0.3) / Reflejo: B = lauxval / Reflejo
Else
If lintValor <= 500 Then
lauxval = lintValor - 250
R = 0: G = (255 - (lauxval * 0.3)) / Reflejo: B = 250 / Reflejo
Else
If lintValor <= 750 Then
lauxval = lintValor - 500
R = (50 - lauxval * 0.15) / Reflejo: G = (180 - lauxval * 0.3) / Reflejo: B = (250 - lauxval * 0.3) / Reflejo
Else
If lintValor <= 1000 Then
lauxval = lintValor - 750
R = 12.5 / Reflejo: G = (105 - lauxval * 0.3) / Reflejo: B = (175 - lauxval * 0.3) / Reflejo
Else
If lintValor <= 1250 Then
lauxval = lintValor - 1000
R = (12.5 - lauxval * 0.01) / Reflejo: G = (30 - lauxval * 0.05) / Reflejo: B = (100 - lauxval * 0.2) / Reflejo
Else
If lintValor <= 1500 Then
lauxval = lintValor - 1250
R = (10 + lauxval * 0.9) / Reflejo: G = (17.5 + lauxval * 0.9) / Reflejo: B = (50 + lauxval * 0.8) / Reflejo
End If
End If
End If
End If
End If
End If
End If
R=R Mod 256
G=G Mod 256
B=B Mod 256
ColoreX = Colors.RGB (B,G,R) ' OK (B,G,R)
C.DrawPoint (CX,CY,ColoreX)
CX = CX + 1
If CX>MaxDem Then CY=CY+1:CX=0
End If
prog.Progress = i / lung * 200
If i Mod 100=0 Then DoEvents
Next