CreateRamStream ?

BlitzMax Forums/BlitzMax Programming/CreateRamStream ?

solved (a bit messy).
Strict

Graphics 800,600,0

'Create a Stream object that refers to the file based image.
Global myFileStream : TStream = OpenStream("ball.png", True)
Global size = StreamSize(myFileStream)
'reserve enough ram to take the entire image
Global myRam : Byte Ptr = MemAlloc(size )

'assign ram to a TRamstream
Global myRamStream : TRamStream = CreateRamStream(myRam, size , True, True)
'copy image to ramstream
CopyStream(myFileStream, myRamStream)
SeekStream(myRamStream, 0)

Global myImage:TImage = LoadImage(myRamStream)


While Not KeyDown(KEY_ESCAPE)
DrawImage myImage, MouseX(), MouseY()
Flip
Cls
Wend
CloseStream(myRamStream)
myRamStream = Null
CloseStream(myFileStream)
myFileStream = Null
MemFree(myRam, size ) 'clear the alloced memory
FlushMem

End


*EDIT*
The same thing using a TBankStream:
Strict

Graphics 800,600,0

'Create a Stream object that refers to the file based image.
Global myFileStream : TStream = OpenStream("ball.png", True)
Global myBank:TBank = CreateBank()
Global myBankStream : TBankStream = CreateBankStream(myBank)
'copy image to stream
CopyStream(myFileStream, myBankStream)
SeekStream(myBankStream, 0)

Global myImage:TImage = LoadImage(myBankStream)


While Not KeyDown(KEY_ESCAPE)
DrawImage myImage, MouseX(), MouseY()
Flip
Cls
Wend
CloseStream(myBankStream)
myBankStream = Null
CloseStream(myFileStream)
myFileStream = Null
myBank = Null
FlushMem

End