This should be fairly accurate. Although blitzmax strives to use the RGBA8888 format, in which case simply image.width * image.height * 4 * frameCount would give the amount of ram used, this is a safer way I think.
i:timage=CreateImage(800,600,10) Print imagemem(i) 'all image frames Print imagemem(i,4) 'just frame 4 Function ImageMem:Int(image:timage,frame:Int=-1) Local p:tpixmap, mem:Int = 0, c:Int If frame = -1 For c = 0 To image.frames.length-1 p = LockImage(image,c) mem:+ p.pitch * p.height UnlockImage(image,c) Next Return mem Else p = LockImage(image,frame) mem = p.pitch * p.height UnlockImage(image,frame) End If Return mem End Function