Image-Frage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Muck

Betreff: Image-Frage

BeitragDo, Apr 06, 2006 9:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Wenn ich ein Bild lade mit LoadImage und dann zur selben Variable ein anderes Bild lade, wird dann das aktuelle überschrieben oder existieren beide Bilder im Speicher? Also besser gefragt: Sollte ich vorher FreeImage eingeben oder nicht?
Latte! Fußballmanagement pur
 

Dreamora

BeitragDo, Apr 06, 2006 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, solltest FreeImage machen ausser du willst den speicher mit nichtmehr auffindbaren bildern vollstopfen Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Florian

Betreff: Re: Image-Frage

BeitragDo, Apr 06, 2006 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Muck hat Folgendes geschrieben:
Hi!

Wenn ich ein Bild lade mit LoadImage und dann zur selben Variable ein anderes Bild lade, wird dann das aktuelle überschrieben oder existieren beide Bilder im Speicher? Also besser gefragt: Sollte ich vorher FreeImage eingeben oder nicht?


Es existieren beide Bilder im Speicher.
Die Variabel enthält nur ein Zeiger der auf den Speicherbereich zeigt, wo
sich das Bild befindet.
Das große BlitzBasic Community Tutorial
Stackmaschine 2.0
 

Muck

BeitragDi, Apr 18, 2006 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bekomm jetzt an einer Stelle immer einen 'invalid image handle' angezeigt, mit FreeImage... Heißt das, dass Bild nicht mehr existiert oder könnte das noch einen anderen Grund haben?
Latte! Fußballmanagement pur
 

HW

BeitragDi, Apr 18, 2006 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also es müsste ja eigentlich existieren, wenn du es geladen hast. Ohne Code können wir dir in diesem Fall jedenfalls nicht helfen.
 

Muck

BeitragSa, Apr 22, 2006 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich hab den Fehler jetzt mal in einem Mini-Programm nachgebaut. Vielleicht könnt ihr mir jetzt sagen, warum das nicht geht.

Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()


Global bild = LoadImage ("grafiken\test.png")
Global bild_temp

Repeat

   If KeyHit(2) Then
      Bild_Test()
   EndIf

Until KeyHit(1)


End


Function Bild_Test()

   bild_temp = bild ; Bild zwischenspeichern
   
   FreeImage bild ; Bild löschen
   bild = bild_temp ; zwischengespeichertes Bild zuweisen
   FreeImage bild_temp ; zwischengespeichertes Bild löschen (hier bekomm ich 'invalid image handle')

End Function
Latte! Fußballmanagement pur

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Apr 22, 2006 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal: Bei Testprogrammen sich nur auf das wesentliche konzentrieren! Also keine Funktionen etc...

Hier mal etwas, was deinen Ansprüchen wohl genügen sollte (mit 'Space' Bild zeichnen): Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer FrontBuffer()

Global bild = LoadImage ("data\tx3.bmp")
Global bild_temp


While Not KeyHit(1)
 If KeyHit(57) Then
  Print bild+"    "+bild_temp
  bild_temp=CopyImage(bild)
  FreeImage bild
  bild=CopyImage(bild_temp)
  FreeImage bild_temp
  DrawImage bild,Rand(200,300),Rand(100,200)
  Print bild+"    "+bild_temp
  Print
 EndIf
Wend
End
 

Muck

BeitragSa, Apr 22, 2006 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hui danke, der CopyImage-Befehl war mir gänzlich unbekannt! Und ich würg mir hier einen ab. Smile

Aber ich hab noch ein paar Fragen bezüglich ResizeImage.

Code: [AUSKLAPPEN]
Repeat

   ResizeImage test, 300,300

Until KeyHit(1)

Warum wird hier die Auslagerungsdatei immer größer? Wird mit jedem 'resizen' ein extra Bild im Speicher angelegt oder was? Und wie kann man ein verändertes Bild dann wieder löschen?
Latte! Fußballmanagement pur
 

Muck

BeitragDi, Apr 25, 2006 9:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu Question Hat keiner eine Antwort für mich? Sad
Latte! Fußballmanagement pur

d-bug

BeitragDi, Apr 25, 2006 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum möchtest du eigentlich das Bild innerhalb einer Schleife vergrößern ?
Mach es lieber vorher ! In deiner Schleife bleibt das Bild sowieso immer gleich
groß, also macht es um so weniger Sinn es in der Schleife zu machen. Das
dürfte dann auch das überflüssige füllen des Speichers beenden.

cheers
 

Muck

BeitragFr, Apr 28, 2006 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, schon klar, ich hab das natürlich nicht genauso verwendet. Es scheint so zu sein, dass LoadImage und ResizeImage immer zu einer Vergrößerung der Auslagerungsdatei führen und man mit FreeImage nur den Grafikspeicher entlastet. Also sollte man die beiden Befehle wohl nicht zu oft einsetzen. Wink
Latte! Fußballmanagement pur

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group