dob*_*eis 16 python pygame image crop surface
我正在学习pygame
并想要一个具有三种状态的按钮的图形:正常,悬停和按下.我有一个像这样的图像......
......我希望Surface
使用它的一部分得到一个新的.
我正在使用以下代码加载图像:
buttonStates = pygame.image.load(os.path.join('image','button.png'))
Run Code Online (Sandbox Code Playgroud)
如何仅使用该图形的一部分来制作新曲面?
PAG*_*PAG 31
cropped = pygame.Surface((80, 80))
cropped.blit(buttonStates, (0, 0), (30, 30, 80, 80))
Run Code Online (Sandbox Code Playgroud)
表面上的blit方法"粘贴"另一个表面.blit的第一个参数是源表面.第二个是要粘贴的位置(在这种情况下,左上角).第三个(可选)参数是要粘贴的源图像的区域 - 在这种情况下,从顶部开始是80x80平方30px,从左侧开始是30px.
您还可以使用该pygame.Surface.subsurface
方法创建与其父表面共享像素的子表面。但是,您必须确保 rect 位于图像区域内,否则 aValueError: subsurface rectangle outside surface area
将被凸起。
subsurface = a_surface.subsurface((x, y, width, height))
Run Code Online (Sandbox Code Playgroud)