images imagen how get_rect example escalar python image pygame crop surface

python - how - ¿Cómo puedo recortar una imagen con Pygame?



pygame image editing (3)

Creo que la mejor manera de hacerlo es recortar la imagen de estos 3 tipos de botones en un programa externo y cargar en diferentes superficies en lugar de usar pygame para recortarlo

Estoy aprendiendo pygame y quiero un gráfico para un botón con los tres estados: normal, hover y presionado. Tengo una imagen como esta ...

... y quiero obtener una nueva Surface utilizando una parte de ella.

Estoy cargando la imagen con este código:

buttonStates = pygame.image.load(os.path.join(''image'',''button.png''))

¿Cómo puedo hacer una nueva superficie usando solo una parte de ese gráfico?


También puede usar el método pygame.Surface.subsurface para crear subsuperficies que compartan sus píxeles con su superficie principal. Sin embargo, debe asegurarse de que el rect esté dentro del área de la imagen o un ValueError: subsurface rectangle outside surface area .

subsurface = a_surface.subsurface((x, y, width, height))


cropped = pygame.Surface((80, 80)) cropped.blit(buttonStates, (0, 0), (30, 30, 80, 80))

El método de blit en una superficie "pega" otra superficie en él. El primer argumento para blit es la superficie de origen. La segunda es la ubicación para pegar (en este caso, la esquina superior izquierda). El tercer argumento (opcional) es el área de la imagen de origen para pegar, en este caso, un cuadrado de 80x80, 30 píxeles desde la parte superior y 30 píxeles desde la izquierda.