Wo zeigt denn pBmpBits hin?
PS: Im Bitmap liegen die Zeilen andersrum im Speicher,
bzw. die Zeilen werden von unten nach oben hintereinander da rum.
Delphi-Quellcode:
rgba := PDWORD(DWORD(pBmpBits) + DWORD(x + (fHeight - 1 - y) * fWidth) * 4);
// pBmpBits muß dabei auf die letzte Zeile zeigen, also ScanLine(fHeight - 1)
Oder du veränderst die Formel noch etwas und rechnest von ScanLine(0) aus.