Global life=0 Global antialias_on=0 Global something$="hello there" Graphics 640,480,0,2 SetBuffer BackBuffer() ; to save test image=LoadImage("test.png") saveGame("test.dat",image) FreeImage image ; get rid of our loaded image Print "Save file saved. Press any key to load it." WaitKey ; to load test (loads settings AND a new image); image=loadGame("test.dat") DrawImage image,0,40 Flip Print "Done!" WaitKey End ; this function saves an image as well as other information in the file Function saveGame(file$,image) If image=0 Then Return f=WriteFile(file) WriteString f,"File version: 1" WriteInt f,life WriteByte f,antialias_on WriteString f,something ; write w + h WriteInt f,ImageWidth(image) WriteInt f,ImageHeight(image) ; now write the image LockBuffer ImageBuffer(image) For i=0 To ImageWidth(image)-1 For j=0 To ImageHeight(image)-1 rgb=ReadPixelFast(i,j,ImageBuffer(image)) WriteInt f,rgb Next Next UnlockBuffer ImageBuffer(image) CloseFile f ; close the file End Function ; this function returns a new image loaded from the file Function loadGame(file$) ; now do the EXACT opposite here. f=ReadFile(file) file_ver$=ReadString(f) life=ReadInt(f) antialias_on=ReadByte(f) something=ReadString(f) w=ReadInt(f) h=ReadInt(f) ; create a new image image=CreateImage(w,h) ; now read the image LockBuffer ImageBuffer(image) For i=0 To w-1 For j=0 To h-1 rgb=ReadInt(f) WritePixelFast(i,j,rgb,ImageBuffer(image)) Next Next UnlockBuffer ImageBuffer(image) CloseFile f Return image End Function