Hab dem Thread grad nur überflogen aber ich gehe davon aus, dass es immer noch nicht wirklich klappt?
Denn wenn SpectrumData2D ein
Byte-Array (

) ist und du 8 oder mehr Bits in
irgendeine Richtung shiftest kommt immer 0 raus!
Was ist jetzt genau in SpectrumData2D enthalten? RGBA-Daten, 32 Bit Farbtiefe?
In dem Fall würden SpectrumData2D[X, Y], SpectrumData2D[X+1, Y], SpectrumData2D[X+2, Y] und SpectrumData2D[X+3, Y] zusammen den RGAB-Wert des X-ten Pixels der Y-ten Zeile darstellen.
Weiß jetzt nicht zu 100% wie die Reihenfolge der Farbwerte ist, aber der Alphawert steht entweder in SpectrumData2D[X, Y] oder SpectrumData2D[X+3, Y].
In dem Fall ist gar keine Bitschieberei notwendig. Falls meine Annahmen falsch sind, dann erklär bitte nochmal was für Daten genau vorliegen.