2013-10-12 87 views
1

如何从内存 pygame.image大小(单位为KB /字节)得到什么?不幸的是,检查表面的大小没有直接的方法。pygame的图像大小为KB(不是以像素为单位)

对于测试,我有2个文件(39KB和1.9MB)

aa = pygame.image.load(filename).convert_alpha() 
bb = pygame.image.load(filename2).convert_alpha() 
print sys.getsizeof(aa) 
print sys.getsizeof(bb) 

结果:

64 
64 

这是(可能)可变大小,而不是存储的图像。 我想出的唯一的事情的toString:

print "Size %d" % sys.getsizeof(pygame.image.tostring(aa, "RGBA")) 
print "Size %d" % sys.getsizeof(pygame.image.tostring(bb, "RGBA")) 

,并得到:

Size 637 
Size 39923749 

38MB?奇怪而不准确。如何检查真实内存使用情况

BR Parasit

回答

0

使用OS:

import os 
print os.stat('image.jpg').st_size 

,如果你想获得个人所得税的内存,而不是文件的大小,这将在字节

打印图像的大小尝试:

aa = pygame.image.load(filename).convert_alpha() 
print aa.nbytes 
+0

我需要内存使用,但对不起,它不工作: AttributeError的: 'pygame.Surface' 对象没有属性“为nbytes – parasit

+0

参见[Surface.get_bytesize](http://www.pygame.org/docs/ref/surface.html#Surface.get_bytesize) – ninMonkey

相关问题