对于普通图像的显示效果,
image = pygame.image.load(image)
image = pygame.image.load(image).convert
显示效果是一样的
但是 使用 convert 可以转换格式,提高 blit 的速度
Convert()所指的“格式”并非指文件格式工(如 png,jpeg,gif),它是所谓的“像素格式”。它代表了一个surface记录一个特定像素的颜色的方法。
如果surface格式跟显示格式不一样,那SDL就要在每次blit的时候去转化它——这是个相当费时的过程。不用关心解释,只要注意到如果想在blit之外获得速度,那你就需要 convert()。
但是对于透明图像,效果会不同
球 ball 的图像是透明的
使用 image = pygame.image.load(image).convert() 的显示效果:
使用 image = pygame.image.load(image)的显示效果:
如果想提高 blit 的速度,但是也想实现透明效果,可以使用:
self.image = pygame.image.load(image).convert_alpha()
其中 convert_alpha相对于convert,保留了图像的Alpha 通道信息,可以认为是保留了透明的部分,实现了透明转换
Alpha 通道:
阿尔法通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中白表示不透明,黑表示透明,灰表示半透明