¿Cómo rotar y escalar imágenes usando PyGame?

En este artículo, vamos a ver cómo rotar y escalar la imagen. Image Scaling se refiere al cambio de tamaño de la imagen original y Image Rotation se refiere al giro de una imagen con algún ángulo. Las rotaciones en el plano de coordenadas son en sentido antihorario. Procedamos con los métodos utilizados y el código completo para realizar estas tareas.

Escalar la imagen

Para escalar la imagen usamos el método pygame.transform.scale(image, DEFAULT_IMAGE_SIZE) donde pasamos la imagen que vamos a escalar y el tamaño de imagen predeterminado que configuraremos manualmente según nuestra necesidad. 

Ejemplo:

Imagen utilizada:

Python3

# Import pygame
import pygame
  
# Initialise pygame
pygame.init()
  
# Set window size
size = width,height = 600, 600
screen = pygame.display.set_mode(size)
  
# Clock
clock = pygame.time.Clock()
  
# Load image
image = pygame.image.load('gfg.png')
  
# Set the size for the image
DEFAULT_IMAGE_SIZE = (200, 200)
  
# Scale the image to your needed size
image = pygame.transform.scale(image, DEFAULT_IMAGE_SIZE)
  
# Set a default position
DEFAULT_IMAGE_POSITION = (200,200)
  
# Prepare loop condition
running = False
  
# Event loop
while not running:
  
    # Close window event
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = True
  
    # Background Color
    screen.fill((0, 0, 0))
  
    # Show the image
    screen.blit(image, DEFAULT_IMAGE_POSITION)
  
    # Part of event loop
    pygame.display.flip()
    clock.tick(30)

Producción:

Rotación de la imagen

Para rotar la imagen usamos el método pygame.transform.rotate(imagen, grado) donde pasamos la imagen que vamos a rotar y el grado en que se va a rotar. 

Ejemplo:

Python3

# Import pygame
import pygame
  
# Initialise pygame
pygame.init()
  
# Set window size
size = width,height = 600, 600
screen = pygame.display.set_mode(size)
  
# Clock
clock = pygame.time.Clock()
  
# Load image
image = pygame.image.load('gfg.png')
  
# Set the size for the image
DEFAULT_IMAGE_SIZE = (200, 200)
  
# Rotate the image by any degree
image = pygame.transform.rotate(image, 180)
  
# Set a default position
DEFAULT_IMAGE_POSITION = (200,200)
  
# Prepare loop condition
running = False
  
# Event loop
while not running:
  
    # Close window event
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = True
  
    # Background Color
    screen.fill((0, 0, 0))
  
    # Show the image
    screen.blit(image, DEFAULT_IMAGE_POSITION)
  
    # Part of event loop
    pygame.display.flip()
    clock.tick(30)

Producción:

Rotar y escalar la imagen

Veamos cómo realizar el Escalado y Rotación de una imagen dada. Estableceremos el tamaño de imagen predeterminado que sea agradable y la posición de imagen predeterminada donde queremos ver nuestra imagen en la pantalla de la ventana. Los mismos métodos que se explicaron anteriormente se utilizarán para escalar y rotar la imagen. 

Ejemplo:

Python3

# Import pygame
import pygame
  
# Initialise pygame
pygame.init()
  
# Set window size
size = width,height = 600, 600
screen = pygame.display.set_mode(size)
  
# Clock
clock = pygame.time.Clock()
  
# Load image
image = pygame.image.load('gfg.png')
  
# Set the size for the image
DEFAULT_IMAGE_SIZE = (200, 200)
  
# Scale the image to your needed size
image = pygame.transform.scale(image, DEFAULT_IMAGE_SIZE)
  
# Rotate the image by any degree
image = pygame.transform.rotate(image, 90)
  
# Set a default position
DEFAULT_IMAGE_POSITION = (200,200)
  
# Prepare loop condition
running = False
  
# Event loop
while not running:
  
    # Close window event
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = True
  
    # Background Color
    screen.fill((0, 0, 0))
  
    # Show the image
    screen.blit(image, DEFAULT_IMAGE_POSITION)
  
    # Part of event loop
    pygame.display.flip()
    clock.tick(30)

Producción:

Publicación traducida automáticamente

Artículo escrito por annulata2402 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *