Bilder schnell auslesen
Habe mal Dein "Blaustichproblem" beseitigt.
Was ich geändert habe und warum kannst Du im folgenden Code nachlesen.

Was ich geändert habe und warum kannst Du im folgenden Code nachlesen.
Code: Alles auswählen
InitSprite()
sprite$=OpenFileRequester("Bild auswählen","c:\","BMP|*.bmp;",-1)
OpenScreen(640,480,32,"Test")
LoadSprite(1,sprite$)
DisplaySprite(1,0,0)
FlipBuffers()
StartDrawing(SpriteOutput(1))
*buffer=DrawingBuffer()
Height=SpriteHeight(1)
Width=SpriteWidth(1)
pitch= DrawingBufferPitch()
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
pixelformat= DrawingBufferPixelFormat()
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Dim image.l(Width,Height)
For y=1 To Height
For X=1 To Width
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Select pixelformat
Case #PB_PixelFormat_32Bits_BGR
bgr=PeekL(*buffer+4*z+z2)
rgb=(((bgr & $FF) << 16)|(((bgr >>8 ) & $FF)<<8)|((bgr >>16) & $FF))
image(X,y)=rgb
Case #PB_PixelFormat_32Bits_RGB
image(X,y)=PeekL(*buffer+4*z+z2)
EndSelect
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
z+1
Next
z = 0
z2 + pitch
Next
StopDrawing()
CreateImage(1,Width,Height)
StartDrawing(ImageOutput())
For y=0 To Height
For X=0 To Width
Plot(X,y,image(X,y))
Next
Next
StopDrawing()
ClearScreen(0,0,255)
StartDrawing(ScreenOutput())
DrawImage(UseImage(1),0,0)
StopDrawing()
FlipBuffers()
Delay(3000)
CloseScreen()
SaveImage(1,"Testbild-buffer.bmp")
RunProgram("Testbild-buffer.bmp")
End
bei mir fehlte etwas im Bild.
Korrektur:
bis dann
mar
Korrektur:
Code: Alles auswählen
For y=0 To Height-1
For X=0 To Width-1
mar