So, noch eine Stunde später, noch eine Erkenntnis:
Die TBitmap.SaveToFile Methode macht etwas (für mich) unerwartetes. Die Bitmap wird auf einem TSurfaceBitmap assigned, und erst das wird dann gespeichert. Was genau eine TSurfaceBitmap ist, kann ich mangels Doku nicht sagen, aber wenn ich statt der Speichermethode diesen hohlen Dreizeiler ausführe:
Delphi-Quellcode:
surf := TBitmapSurface.Create;
surf.Assign(fBMP);
surf.Free;
Dann wird die Bitmap immer korrekt angezeigt (TBitmapSurface benötigt FMX.Surfaces).
Mag das einer erklären
Sherlock