Aktuelle Zeit: 13.12.2018 21:56

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: PB 4.xx kommt nicht mit 1 Bit Bitmaps von MSPaint zurecht.
BeitragVerfasst: 09.05.2008 14:36 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:31
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")


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 09.05.2008 20:21 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
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

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 09.05.2008 23:01 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:31
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.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 11.05.2008 19:46 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
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

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 12.05.2008 22:15 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
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

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 20.05.2008 17:41 
Offline
Benutzeravatar

Registriert: 29.08.2004 09:31
jo Danke.

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


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye