Das Problem liegt hier..
PByte(imgSpectrumData[0, 0])
Hmmm was ist nun richtig.
gruss
Warum nicht
PByte(@imgSpectrumData[0, 0])
Das würde mehr Sinn machen, glaube ich.
Wurde doch von @FritzW schon vorgeschlagen habe es versucht und verursacht ebenfalls viele Fehler.
Sage nicht das es falsch ist.
Nun dann muss ich diese Fehler wohl beheben.
Zitat:
GDIP_CreateBitmapFromScan0() erwartet doch sicherlich einen zusammenhängenden Speicherbereich und zwar von h * w * 4 Byte.
ob er zusammenhängend sein muss keine Ahnung zumindest werden die Daten so übergeben.
if GDIP_CreateBitmapFromScan0(w, rc.Bottom, w * 4
Wie würdest du denn dann das Array definieren wenn nicht mit Byte?
Wenn mit Pbyte dann ist das komplette Array "NIL" nach dem erstellen des Image. Siehe Pbyte.png
Und bei der ersten abfrage kracht es dann natürlich. Siehe crash.png
Edit:
a := (((int64(imgSpectrumData[x, y]) and 4278190080) div 16777216) and 255);
wäre möglich aber dann kracht es hier!
imgSpectrumData[x, y]^ := c or (a * 16777216);
gruss