Autor Beitrag
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Do 08.08.13 23:38 
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:

ausblenden volle Höhe Delphi-Quelltext
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{ <<<< hier gibt es den Abbruch mit OutOfResources }
{...}
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
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Do 08.08.13 23:56 
Danke für den vereinfachten Quelltext :D dort finde ich keine Fehler..
Hast du propertys auf den zugegriffen Variablen die benutzt werden?
Eine Funktion die sich selbst aufrufen könnte, oder oder?

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Fr 09.08.13 00:29 
Setze mal PixelFormat auf pf24bit, sobald Du das Bitmap erzeugt hast.

Quelle: stackoverflow.com/qu...rge-bitmap-on-delphi

Für diesen Beitrag haben gedankt: GuaAck
GuaAck Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Fr 09.08.13 19:03 
Bingo!

Pixelformat setzen hat geholfen. Die Erklärung in der Quelle ist sehr aufschlussreich!

Gruß GuaAck