图像由"pygame.Surface" 对象表示。 Surface 可以从带有pygame.image.load 的图像创建:
my_image_surface = pygame.load.image('my_image.jpg')
但是,pygame 文档指出:
返回的 Surface 将包含与其来源文件相同的颜色格式、颜色键和 alpha 透明度。您经常需要不带参数地调用convert(),以创建一个可以更快地在屏幕上绘制的副本。
对于 alpha 透明度,就像在 .png 图像中一样,在加载后使用convert_alpha() 方法,以便图像具有每个像素的透明度。
使用适当的转换方法以获得最佳性能:
image_surface = pygame.load.image('my_image.jpg').convert()
alpha_image_surface = pygame.load.image('my_icon.png').convert_alpha()
Surface 可以使用blit 方法在另一个Surface 上绘制或混合。 blit 的第一个参数是应该绘制的 Surface。第二个参数是表示左上角的元组 (x, y) 或矩形。对于矩形,只考虑矩形的左上角。需要说明的是,窗口分别显示也是由一个Surface来表示的。因此,在窗口中绘制Surface与在Surface上绘制Surface是一样的:
window_surface.blit(image_surface, (x, y))
window_surface.blit(image_surface,
image_surface.get_rect(center = window_surface.get_rect().center))
小例子:
import pygame
pygame.init()
window = pygame.display.set_mode((300, 300))
clock = pygame.time.Clock()
pygameSurface = pygame.image.load('apple.png').convert_alpha()
run = True
while run:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
window.fill((127, 127, 127))
window.blit(pygameSurface, pygameSurface.get_rect(center = window.get_rect().center))
pygame.display.flip()
pygame.quit()
exit()
pygame.image.load 可以加载大多数图像。根据文档,支持以下格式:JPG、PNG、GIF(非动画)、BMP、PCX、TGA(未压缩)、TIF、LBM(和 PBM)、PBM(和 PGM、PPM)、XPM。
如果您想在 PyGame 中使用与其他库一起加载的图像,请参阅:
有关加载可缩放矢量图形 (SVG) 文件的信息,请参阅:
加载动画 GIF 文件显示在:
或查看如何加载NumPy 帧: