Sauer sein macht Falten..
Setze doch mal eine Breakpoint auf
alpha := ((imgSpectrum[x,y] and $FF000000) shr 24) and $FF;
Markiere imgSpectrum[x,y], drücke ctrl+F5
das gleiche mache mit alpha.
Editiere die beiden Watcheinträge, und lass sie als Hexwert ausgeben.
Jetzt schau mal was in den imgSpectrum Array drin steht.
.. und was aus alpha wird.
Vielleicht ist es ein Problem Deiner Eingangsdaten..
Wenn ich meine Array mit Quatchwerten belege, dann wird auch ab und an alpha > 127 angefahren.
Delphi-Quellcode:
for x := 0 to w do
for y := 0 to h do
imgSpectrum[x,y] := (random(high(byte)) shl 24) or $00123456;
Grüße
Klaus