Habe mal VB angepasst so das ich genaue werte liefern kann.
Code:
For x = 0 To w
a = (((imgSpectrumData(x, y) And &HFF000000) \ &H1000000) And &HFF&)
f = a - d
If f < 0 Then
a = 0
Else
a = f
End If
c = imgSpectrumData(x, y) And &HFFFFFF
If a > 127 Then
imgSpectrumData(x, y) = c Or ((a - 256) * &H1000000)
Else
imgSpectrumData(x, y) = c Or (a * &H1000000)
End If
a bekommt den wert 0
f = a - d = -92
damit ist die Bedingung erfüllt das ich in die zweite Funktion(Bedingung) springe.
Da du aber Byte verwendest wird -92 niemals bei dir auftreten..
Deshalb springt er zwischen > 127 und < 0 denn 0.36 * 255 = 92 und a -d = -92
Also Byte ist definitive in dem fall dann nicht korrekt.
Hab jetzt alles durch das wird nix.
Danke trotzdem.
gruss