Seite 1 von 1

Kurze Verständnisfrage zu CopyImage (Image1, Image2)

Verfasst: 04.03.2008 23:53
von Kurzer
Hallöle...

Kurze Verständnisfrage zu CopyImage (#Image1, #Image2):

Wenn #Image2 bereits besteht, dann wird durch CopyImage doch nur der Inhalt überschrieben und *keine* neue "Imageinstanz" erzeugt, oder?
Die Hilfe ist da etwas undeutlich: "Erstellt ein neues Bild '#Image2', welches identisch zur Quelle '#Image1' ist."

Ich will nicht Speicher für 3 Bilder verballern, nur weil ich's nicht verstanden habe. ;-)

Verfasst: 05.03.2008 00:13
von #NULL
ich denke #img2 wird 'befreit' und durch ein neues ersetzt, mit den dimensionen von #img1.
eben wie den create()-funktionen

Verfasst: 05.03.2008 00:47
von PMV
Was spricht gegen ein vorherieges FreeImage(Image2)? :D
... ansonnsten würd es mich schon wundern, wenn das verhalten anders
wäre als #NULL schon geschrieben hat. Eventuell mal Rumprobieren mit
großen Images oder mal Fred fragen. Der is bestimmt immer noch öfters
im IRC-Channel. :wink:

MFG PMV

Verfasst: 05.03.2008 02:08
von #NULL
habs mal getestet:

Code: Alles auswählen

CreateImage(0,800,800)
For i=0 To 100000
  CopyImage(i,i+1)
  FreeImage(i)
Next
laut taskmanager ist das clean.

Verfasst: 05.03.2008 02:15
von Kaeru Gaman
aber da benutzt du doch FreeImage...
wenn, dann müßtest du das schon so machen:

Code: Alles auswählen

CreateImage(0,800,800)
For i=0 To 100000
  CopyImage(0,1)
Next 
immer wieder aufs selbe drüberkopieren.

habs mal laufen lassen.
ist wohl sicher, der speicherverbrauch wächst nicht kontinuierlich an,
aber die garbage-collection scheint ein wenig hinterher zu hinken,
der speicherverbrauch schwank zwischen 1.5 und 4 MB.

Verfasst: 05.03.2008 02:22
von #NULL
stimmt, freeimage brauchen wir nicht testen, sollte ja gehen :mrgreen:

Verfasst: 05.03.2008 22:27
von Kurzer
Hey, danke für Eure Mühe.
Auf den Test mit dem Messen des Speicherverbrauchs hätte ich auch kommen können :oops: (ich sollte wohl doch keinen Klaren mehr schlürfen am späten Abend ;))

Gegen ein vorheriges FreeImage() spricht eigentlich nichts, ich war mir nur nicht sicher wegen der komischen Formulierung im Help.