PureBoard
https://www.purebasic.fr/german/

PB 4.xx kommt nicht mit 1 Bit Bitmaps von MSPaint zurecht.
https://www.purebasic.fr/german/viewtopic.php?f=19&t=16568
Seite 1 von 1

Autor:  SoS [ 09.05.2008 14:36 ]
Betreff des Beitrags:  PB 4.xx kommt nicht mit 1 Bit Bitmaps von MSPaint zurecht.

Wer schon immer mal seinen Speicher auslasten wollte,sollte folgendes testen.

Mit MSPaint ein 1 Bit Bitmap erstellen und folgenden Code mal laufen lassen.
PB 3.94 hat damit kein Problem.

Code:
Filename.s= OpenFileRequester("1Bit Bitmap","","All supported formats|*.bmp|BMP image (*.bmp)",0)

For x=0 To 10000
  If IsImage(Image_1)
    FreeImage(Image_1)
  EndIf
  Image_1= LoadImage(#PB_Any,Filename)
Next

MessageRequester("Imagebug", "Look in your Taskmanager")

Autor:  Falko [ 09.05.2008 20:21 ]
Betreff des Beitrags: 

Dann probiere mal dieses hier aus

Code:
Filename.s= OpenFileRequester("1Bit Bitmap","","All supported formats|*.bmp|BMP image (*.bmp)",0)



For x=0 To 10000
  If IsImage(Image_1)
    FreeImage(Image_1)
    Delay(10)
  Else
  EndIf
  Image_1= LoadImage(#PB_Any,Filename)
  Debug "ImageNr:"+Str(x)+ "  "+ Str(Image_1)
Next
MessageRequester("Imagebug", "Look in your Taskmanager")


FreeImage() ist wohl nicht so schnelle, wie der Speicher voll wird :mrgreen:

Also mit dem Delay(10) läufts bei mir bis volle 10000 durch.
Ohne hört's bei ca. 9333 auf

Gruß Falko

Autor:  SoS [ 09.05.2008 23:01 ]
Betreff des Beitrags: 

Falko hat geschrieben:
Dann probiere mal dieses hier aus

Code:
Filename.s= OpenFileRequester("1Bit Bitmap","","All supported formats|*.bmp|BMP image (*.bmp)",0)



For x=0 To 10000
  If IsImage(Image_1)
    FreeImage(Image_1)
    Delay(10)
  Else
  EndIf
  Image_1= LoadImage(#PB_Any,Filename)
  Debug "ImageNr:"+Str(x)+ "  "+ Str(Image_1)
Next
MessageRequester("Imagebug", "Look in your Taskmanager")


FreeImage() ist wohl nicht so schnelle, wie der Speicher voll wird :mrgreen:

Also mit dem Delay(10) läufts bei mir bis volle 10000 durch.
Ohne hört's bei ca. 9333 auf

Gruß Falko


Du könntest ein Delay von einer Stunde einfügen,das ändert nichts an der Tatsache das der Speicher nicht freigegeben wird.

Getestet hab ich es mit einer 1680x1050x1bit,nach 1000 durchläufen mit DEINEM Delay hat das Programm 227880 MB verschlungen.

Ohne Delay verbauch es genau soviel.

Autor:  Falko [ 11.05.2008 19:46 ]
Betreff des Beitrags: 

Hier noch was für Fred als Beispiel, wenn du posten möchtest. So wie es
aussieht, wird der Speicher bei FreeImage nicht frei gegeben, solange das
Programm noch läuft und die Messagebox das nicht beendet.
Sind es mehr Bilder oder auch grössere Bilder, wird irgendwann der Gesamtspeicher überlaufen .
Es scheint also ein Bug mit FreeImage zu Monochrombildern zu sein, welcher sich auch in der aktuellen Beta 5 noch befindet. Hattest du Fred das schon gepostet?

In der Hilfe steht, folgendes:

Zitat:
Syntax

FreeImage(#Image)
Beschreibung

Gibt das angegebene Bild '#Image' und dessen zugehörigen Speicher frei.

Hinweis: alle verbleibenden Bilder werden automatisch freigegeben, wenn das Programm endet.


wobei der Hinweis der Hilfe zum Ende des Programms zwar korrekt funktioniert, aber bei großen Anzahl der Bilder oder großen Bilder
irgendwann der Speicher überlaufen wird.

Du hast damit Recht gehabt. Wer will kann sich ja den Unterschied
zwischen Monochrombildern und Farbbildern im Taskmanager anschauen :wink:

Code:
Filename.s= OpenFileRequester("1Bit Bitmap","","All supported formats|*.bmp|BMP image (*.bmp)",0)
RunProgram("Taskmgr","","",0); Look at PureBasic_Compilation0 in your Taskmanager
For x=0 To 10000
  If IsImage(Image_1)
    FreeImage(Image_1); all memory from this Images are not erased!
    Delay(10)
  Else
  EndIf
  Image_1= LoadImage(#PB_Any,Filename)
Next
MessageRequester("Imagebug", "Look in your Taskmanager at Memory from PureBasic_Compilation0.exe")



Grüße ... Falko

Autor:  Falko [ 12.05.2008 22:15 ]
Betreff des Beitrags: 

So, nun ist's erledigt :mrgreen:

Ich hatte es in's englische Forum gepostet und Fred hat's nun gefixt.
Finde ich toll, wie schnell Fred reagiert hat. Top Team.

http://www.purebasic.fr/english/viewtopic.php?t=32299

Gruß Falko

Autor:  SoS [ 20.05.2008 17:41 ]
Betreff des Beitrags: 

jo Danke.

Benutze solange GDI+ zum laden und geht problemlos. ;)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/