Was ganz komisches zu Hex$()
Übersicht

![]() |
remaBetreff: Was ganz komisches zu Hex$() |
![]() Antworten mit Zitat ![]() |
---|---|---|
Will ein Pixmap auslesen, und aus Bequemlichkeit gleich mal den INT-Wert des Pixel als ein HEX-STRING speichern. Dabei kam ich zu folgendem Problem: nach jeder Schleife wurde diese immer langsamer!
Code: [AUSKLAPPEN] Graphics 800,600,0
Pmap = LoadPixmap("/home/remo/Desktop/map2d_gameengine/map.png") If Pmap = Null Then RuntimeError("fehler: bild") ' DrawPixmap Pmap, 10, 10 For i=0 To 10 Cls t=MilliSecs() For x=0 To PixmapWidth(Pmap)-1 For y=0 To PixmapHeight(Pmap)-1 If KeyHit(1) Then End p:String = Hex$(ReadPixel(Pmap,x,y)) ' HIER IST DAS PROBLEM ' p:Int = ReadPixel(Pmap,x,y) ' SO GEHTS OHNE ZEITVERZöGERUNG 'If Mid$(p,3,2) = "FF" Then Plot x+200,y+10 Next Next Flip Print " i > "+ (MilliSecs()-t) Next WaitKey() End Das Image hat die Grösse von 100x100 Pixeln. Am Anfang waren es 45ms, dann ca. 160, 300, 600, 800, und schlussendlich bis über 2000ms !!! Was ist los? |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, habe es jetzt mit FlushMem() probiert. Innerhalb der x,y oder i -Schleife hält sich das ganze in Grenzen, als unter 50ms.
Aber wiso tritt dies auf? Wird jedesmal neuer Speicher für den String reserviert? |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jup, der String ist ja lokal wenn er nicht vorher irgendwo definiert wurde.
Und die Hex-Funktion ist wahrscheinlich auch nicht die schnellste ![]() Am schnellsten wärs wahrscheinlich mit Shift-Operationen. Code: [AUSKLAPPEN] Local p:Int Local rot:Byte Local gruen:Byte Local blau:Byte Local alpha:Byte ... 'For schleifen ... p:Int = ReadPixel(pmap, x, y) rot:Byte = Byte(p) gruen:Byte = Byte(p Shr 8) blau:Byte = Byte(p Shr 16) alpha:Byte = Byte(p Shr 24) If gruen = $FF then plot x+200, y+10 ... ... 'Ende For-Schleifen |
||
- Zuletzt bearbeitet von Jolinah am Mo, Mai 30, 2005 22:44, insgesamt einmal bearbeitet
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group