![]() |
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:
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ß? |
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.
|
Re: Fehler bei Bitmapumwandlung EOutOfResources
Ja sry is wirklich ein bisschen wenig. ich schreib hier mal ein bisschen mehr.
Delphi-Quellcode:
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.
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; |
Re: Fehler bei Bitmapumwandlung EOutOfResources
Ähm, TBitmap hat selbst schon eine Methode LoadFromFile. Warum den völlig unnötigen Weg über ein TImage32!?
|
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. |
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 |
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. |
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. |
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:
Allerdings können komischerweise einige Dateien ertsellt werden, wenn sie beeits vorhanden sind. Wid nämlich einfach überschieben, was auch passieren soll.
---------------------------
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 --------------------------- Der hier kommt auch manchmal.
Code:
Was ich weiß, ist dass der Fehler aus der Gaphics-Unit kommt. Aber ich konnte bisher die Ursache immer noch nicht klären.
---------------------------
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 --------------------------- 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 00:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz