Seite 1 von 1
Fehler bei ResizeImage
Verfasst: 10.01.2005 19:34
von Sven
ResizeImage() von kleinen (etwa 32 x 32) auf sehr große Bildformate (etwa 1000 x 800) erzeugt unter PB 3.91 (jaPBe, Win98se) einen Absturz beim darauffolgenden Zugriff (UseImage...) auf das Bild, der Compiler meldet "#ImageObject not initilized", obwohl das Bild vorher problemlos angesprochen wurde. Warum ist das so? Das sollte doch nicht so sein, oder?
Das Erstellen eines Bildes mit CreateImage() in diesen Formaten ist kein Problem, ein Workaround ist daher: Bild vernichten und neu erzeugen, nur scheint mir dann ResizeImage() nicht sehr sinnreich. Auch sollte das Resize etwas schneller sein?
Sven
Verfasst: 10.01.2005 19:39
von glubschi90
Komisch...
Wenn ich dich richtig verstanden habe, find' ich keinen Fehler...
(Hab mal 'nen Code geproggt)
Code: Alles auswählen
CreateImage(0,32,32)
StartDrawing(ImageOutput())
Circle(16,16,6,RGB(200,200,0))
StopDrawing()
ResizeImage(0,1000,800)
UseImage(0)
;FreeImage(0)
Ich hab aber WinXP - vielleicht liegt's daran...

Verfasst: 12.01.2005 11:49
von Sven
Grünau das meinte ich. Bei mir ist in Deinem Beispiel
ResizeImage(0,850,820)
gerade noch drin, dann Fehler.
Sven
Verfasst: 12.01.2005 19:52
von GPI
Gibt Resize was zurück?
Eventuell eine einschränkung von Win98.
Verfasst: 14.01.2005 00:10
von Sven
Hi GPI!
Naja, wenn's läuft eine 5-stellige Zahl, wenn's nicht läuft 0. Nützt mir aber nichts, das abzufangen, weil ich ja das Bild weiterhin brauche.
Kann schon sein, dass es an der Speicherverwaltung von Win98 liegt. Man könnte das Bild vielleicht auch schrittweise vergrößern:
[code]CreateImage(0,32,32)
StartDrawing(ImageOutput())
Circle(16,16,6,RGB(200,200,0))
StopDrawing()
Debug ResizeImage(0, 200, 200)
UseImage(0)
Debug ResizeImage(0, 1000, 800)
UseImage(0)
FreeImage(0)[/code]
Das funktioniert, aber dann weiss ich nie, wann und unter welchen Bedingungen es wieder aussteigt.
Sven