Hi
There are more ways to get the pixel color from pixmaps. Diablos is the slowest. Look at this small test.
Mfg Suco
There are more ways to get the pixel color from pixmaps. Diablos is the slowest. Look at this small test.
Graphics 800, 600,0 Const TestLoops:Int = 50 Local TestImage:TImage = CreateImage(256, 256) Local Time:Int Local i:Int For Local x:Int = 0 Until 256 For Local y:Int = 0 Until 256 SetColor Rand(0,255), Rand(0,255), Rand(0,255) Plot x, y Next Next GrabImage(TestImage, 0, 0) Print "" Time = MilliSecs() For i = 0 Until TestLoops CheckImage1(TestImage) Next Time = MilliSecs()-Time Print "CheckImage1 time (millisecs): "+Time Time = MilliSecs() For i = 0 Until TestLoops CheckImage2(TestImage) Next Time = MilliSecs()-Time Print "CheckImage2 time (millisecs): "+Time Time = MilliSecs() For i = 0 Until TestLoops CheckImage3(TestImage) Next Time = MilliSecs()-Time Print "CheckImage3 time (millisecs): "+Time End Function CheckImage1(Image:TImage) Local pimage:TPixmap = LockImage(image) While y < image.Height x = 0 While x < image.width col = ReadPixel( pimage, x, y ) a = ( col & $ff000000) r = ( col & $ff0000 ) Shr 16 g = ( col & $ff00 ) Shr 8 b = ( col & $ff ) x:+ 1 Wend y:+ 1 Wend UnlockImage(image) End Function Function CheckImage2(Image:TImage) Local pimage:TPixmap = LockImage(image) While y < pimage.Height x = 0 While x < pimage.width col = pimage.ReadPixel(x, y ) a = ( col & $ff000000) r = ( col & $ff0000 ) Shr 16 g = ( col & $ff00 ) Shr 8 b = ( col & $ff ) x:+ 1 Wend y:+ 1 Wend UnlockImage(image) End Function Function CheckImage3(Image:TImage) Local pimage:TPixmap = LockImage(image) For Local x:Int = 0 Until pimage.Width For Local y:Int = 0 Until pimage.Height Local PixelData:Byte Ptr = pimage.PixelPtr(x,y) r = PixelData[0] g = PixelData[1] b = PixelData[2] a = PixelData[3] Next Next UnlockImage(image) End Function
Mfg Suco