Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler bei Bitmapumwandlung EOutOfResources (https://www.delphipraxis.net/53096-fehler-bei-bitmapumwandlung-eoutofresources.html)

Brainstalker 10. Sep 2005 00:04


Fehler bei Bitmapumwandlung EOutOfResources
 
Also ich habe mich nun ein bisschen mit Threads beschäftigt. Ich will nämlich ein Teil meines Programms auslagen, bzw. hab ich schon getan. Soweit läufts auch ganz gut, bis auf diesen Fehler.
Das komische ist, der Fehler tritt nur manchmal auf. Wenn ich die Selbe Aktion öfter durchführe für ca. 30 Bilder funktioniert es manchmal und manchmal eben nicht.

Es tritt der Fehler EOutOfResources auf:
Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project Test.exe raised exception class EOutOfResources with message 'Für diesen Befehl ist nicht genügend Speicher verfügbar.
'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Der Fehler tritt bei folgender Zeile auf:
Delphi-Quellcode:
Bmp.Assign(Image.Bitmap);

Bmp: TBitmap
Image: TImage32 <--- nicht Bitmap32


Wieso tritt der Fehler an dieser Stelle auf?
Warum tritt er nur manchmal auf?
Wieso trat er nie auf, wenn ich es nicht im eingenen Thread sondern im Hauptthread laufen ließ?

Luckie 10. Sep 2005 00:57

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Also diese drei Zeilen reichen nicht aus. Du wirst das Bitmap oder was immer sonst du für Objekte erstellst nicht wieder freigeben.

Brainstalker 10. Sep 2005 01:55

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Ja sry is wirklich ein bisschen wenig. ich schreib hier mal ein bisschen mehr.
Delphi-Quellcode:
Bmp := TBitmap.Create;
Image := TImage32.Create(nil);
...
for i := 0 to FPics.Count-1 do begin
  Image.Bitmap.LoadFromFile(arr[5] + arr[0]);
  ...
  Bmp.Assign(Image.Bitmap);
  Bmp.SaveToFile(sTo)
end;
...
Bmp.Free;
Image.Free;
Der Restcode ist denke ich nicht wichtig. Ich bin mir ziemlich sicher, das dort kein Fehler auftritt. Was mich wundert ist das der Fehler nicht jedes mal auftritt, sondern nur jedes 2. oder 3. Mal.

dizzy 10. Sep 2005 04:17

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Ähm, TBitmap hat selbst schon eine Methode LoadFromFile. Warum den völlig unnötigen Weg über ein TImage32!?

Brainstalker 10. Sep 2005 16:47

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Das mit Timage32 hat den Sinn, dass ich auch mit anderen Bildtypen arbeiten kann, beispielsweise gif und png. Außerdem arbeite ich mit der Graphics32 komponente.
Es werden verschiedene Operationen ausgeführt wie Bildgröße ändern oder Texte draufschrreiben usw. Naja und zum Schluß möchte ich das ganze als Jpg abspeichern.
Ich kann aber nicht direkt von TImage32 zu TJpeg konvertieren sondern muss den Umweg über TBitmap gehen. Und da kommt eben der Fehler oder manchmal auch nicht. Der Fehler kommt auch nicht beim selben Bild. Es ist jedes Mal ein anderes bzw. keins. Ich versteh eben nicht warum er manchmal nicht genug Speicher zur Verfügung hat.

dizzy 10. Sep 2005 17:29

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Aaaaha, das mit dem JPEG wollte ich doch nur hören :D

Ich habe selbst schon des öfteren Probleme mit der mitgelieferten jpeg-Unit gehabt, gerade was den Speicher betrifft. Versuch mal einfach aus Spaß nicht als jpeg, sondern als bmp zu speichern, und schau ob das Problem noch immer besteht. Ich meine mich zu erinnern dass es hier irgendwo auch einen Thread zu ähnlichen Problemen gab - weiss aber nicht mehr ob eine Lösung gefunden wurde.

Aber erstmal wäre interessant ob es mit bmp geht.

Gruss,
Fabian

Brainstalker 10. Sep 2005 17:52

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Hm habs jetzt getestet mit Tbitmap32.SaveToFile und mit TBitmap.SaveToFile. Es kommt die gleiche Fehlermeldung nur mit dem Text out of Systemresource oder so. Oder manchmal Ein vorhandenes Bild kann nicht gespeichert werden. Kann die Fehlermeldungen auf Bedarf ganz posten.
Es scheint sich um eine Generelles speicherproblem zu handeln.
Arbeitsspeicher hab ich genug und mein Programm benutzt wenns hoch kommt max. 20 MB arbeitsspeicher.

Brainstalker 12. Sep 2005 22:35

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Wollt noch mal nachfragen, ob jemand jetzt vielleicht ne lösung hat?
Ich habs noch nicht lösen können.

Brainstalker 20. Sep 2005 20:28

Re: Fehler bei Bitmapumwandlung EOutOfResources
 
Also immer noch besteht das Problem mit dem Fehler EOutOfResources. Allerdings bekomme ich den Fehler mit anderer Meldung.

Die Fehler treten auf wenn ich als bmp speicher. Bei jpg kommt der Fehler aus dem ersten Post.
Wenn ich als bmp speicher, dann läuft das Programm danach normal weiter, bzw. der Fehler kommt dann noch öfter. Bei jpg kommt der Fehler und danach dann bei jedem weiteren Bild.


Code:
---------------------------
Debugger Exception Notification
---------------------------
Project Test.exe raised exception class EOutOfResources with message 'Eine Datei kann nicht erstellt werden, wenn sie bereits vorhanden ist.
'. Process stopped. Use Step or Run to continue.
---------------------------
OK  Help  
---------------------------
Allerdings können komischerweise einige Dateien ertsellt werden, wenn sie beeits vorhanden sind. Wid nämlich einfach überschieben, was auch passieren soll.

Der hier kommt auch manchmal.
Code:
---------------------------
Debugger Exception Notification
---------------------------
Project Thumbnail.exe raised exception class EOutOfResources with message 'Out of system resources'. Process stopped. Use Step or Run to continue.
---------------------------
OK  Help  
---------------------------
Was ich weiß, ist dass der Fehler aus der Gaphics-Unit kommt. Aber ich konnte bisher die Ursache immer noch nicht klären.
Falls jemand weiß woan es liegen könnte, bzw. Warum einer der beiden Fehler auftritt, wäre ich sehr dankbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz