Liebe Experten,
ich habe vor einigen Jahren ein Programm für eine sehr spezielle Fotobearbeitung gemacht, ging immer bestens mit Bildern von 7MPixel-Kameras. Jetzt habe ich erstmalig ein Foto von einer 20 MPixel-Kamera (Bitmap ist 60 MB) erhalten, und da bricht das Programm ab.
Hier der Code im Prinzip:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| TFoto = Class
save: TBitmap;
END;
TMainForm = Class(TForm)
Foto1,Foto2: TFoto;
END;
VAR MainForm: TMainform;
PROCEDURE TMainForm.FormCreate(); BEGIN Foto1:=TFoto.create; Foto1.save:=TBitmap.Create; Foto2:=TFoto.create; Foto2.save:=TBitmap.Create; END;
PROCEDURE TMainForm.Ladefoto; BEGIN
Foto1.save.width:=5472; Foto1.save.height:=3648; Foto2.save.width:=5472; Foto2.save. height:=3648;
END; |
Mein System-Monitor zeigt, dass von meinen 1,5 GB RAM etwa 0,6 GB genutzt sind, also reichlich Reserve. Ich nutze Delphi 7 mit Windows XP. In einer anderen Anwendung habe ich ein ARRAY [1..10000] OF ... von 0,9 GB ohne Probleme nutzen können.
Habe bei Heap und Stack in der Delphi-Hilfe gestöbert auch per Google, leider nicht richtig was gefunden. Vielleicht hat ja jemand von Euch eine Idee.
Wäre schön, denn einen halbwegs handhabbaren Work-around habe ich noch nicht gefunden.
Gruß
GuaAck