Das mit den 280 zu 350 ist Bildschirmskalierung.
Zurück zum eigentlichen Problem: Erstell dir eine lokale TBitmap-Variable, lade dein Bild dort hinein und zeichne die mit
TImage.Canvas.
StretchDraw auf dem TImage. Bei der ersten Verwendung von TImage.Canvas wird automatisch
TImage.Picture.Bitmap mit der aktuellen Größe erstellt (passt sich nicht automatisch an). Du kannst entweder auf dessen Pixels-Eigenschaft oder die von TImage.Canvas zugreifen. Langsam ist beides. Schneller ist TPngImage, aber das wäre noch eine Ecke komplizierter.