Поиск по сайту:

Как вращать и масштабировать изображения с помощью PyGame?


Мы можем вращать и масштабировать изображение в Pygame, используя функции pygame.transform.rotate и pygame.transform.scale соответственно модуля Pygame. Функция используется для поворота изображения на заданный угол в градусах. Функция принимает два параметра — изображение, которое нужно повернуть, и угол поворота. В этой статье мы будем использовать функции pygame.transform.rotate и pygame.transform.scale для поворота и масштабирования изображения соответственно.

Поворот изображения в Pygame

Алгоритм

Поворот изображения в Pygame —

  • Импортируйте библиотеку pygame.

  • Инициализируйте Pygame, вызвав pygame.init().

  • Установите размер экрана с помощью pygame.display.set_mode().

  • Загрузите изображение для поворота, используя pygame.image.load().

  • Поверните изображение с помощью pygame.transform.rotate() и укажите угол поворота в градусах.

  • Используйте screen.blit(), чтобы нарисовать исходное и повернутое изображения на экране.

  • Вызовите pygame.display.flip(), чтобы обновить отображение.

  • Подождите, пока пользователь закроет окно, используя цикл while, который прослушивает событие pygame.QUIT.

  • Закройте Pygame, используя pygame.quit().

Синтаксис

pygame.transform.rotate(Surface, angle)

Здесь Surface — это поверхность, которую нужно повернуть, а angle — это угол поворота поверхности в градусах. Функция возвращает новую поверхность с повернутым изображением.

Пример

Код ниже загружает изображение с именем python-logo.png и поворачивает его на 45 градусов с помощью функции pygame.transform.rotate, а затем отображает на экране как исходное, так и повернутое изображение. Функция блитирования используется для рисования изображений на экране.

import sys
import pygame

pygame.init()

screen = pygame.display.set_mode((400, 400))

# Load the image to rotate
image = pygame.image.load('python-logo.png')

# Rotate the image by 45 degrees
rotated_image = pygame.transform.rotate(image, 45)

# Display the original and rotated image on the screen
screen.blit(image, (0, 0))
screen.blit(rotated_image, (200, 0))

pygame.display.flip()

# Wait for the user to close the window
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

Выход

Масштабирование изображения в Pygame

Pygame предоставляет функцию pygame.transform.scale, которая масштабирует изображение до заданного размера. Функция принимает два параметра: изображение для масштабирования и новый размер изображения. В приведенном ниже коде используется функция pygame.transform.scale для масштабирования изображения в два раза по сравнению с исходным размером.

Алгоритм

Масштабирование изображения в Pygame —

  • Импортируйте библиотеку pygame.

  • Инициализируйте Pygame, вызвав pygame.init().

  • Установите размер экрана с помощью pygame.display.set_mode().

  • Загрузите изображение для масштабирования с помощью pygame.image.load().

  • Масштабируйте изображение с помощью pygame.transform.scale() и укажите новый размер изображения в виде кортежа (ширина, высота).

  • Используйте screen.blit(), чтобы нарисовать исходное и масштабированное изображение на экране.

  • Вызовите pygame.display.flip(), чтобы обновить отображение.

  • Подождите, пока пользователь закроет окно, используя цикл while, который прослушивает событие pygame.QUIT.

  • Закройте Pygame, используя pygame.quit().

Синтаксис

pygame.transform.scale(Surface, size)

Здесь Surface — это поверхность для масштабирования, а size — это кортеж, представляющий новый размер поверхности. Функция возвращает новую поверхность с масштабированным изображением.

Пример

import pygame
import sys

pygame.init()

screen = pygame.display.set_mode((700, 500))

# Load the image to scale
image = pygame.image.load('python-logo.png')

# Scale the image to 2x its original size
scaled_image = pygame.transform.scale(image, (image.get_width() * 2, image.get_height() * 2))

# Display the original and scaled image on the screen
screen.blit(image, (0, 0))
screen.blit(scaled_image, (200, 0))

pygame.display.flip()

# Wait for the user to close the window
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()

Выход

Заключение

В этой статье мы повернули и масштабировали изображение с помощью методов Pygame pygame.transform.rotate и pygame.transform.scale. Это простые в использовании методы, которые используют определенные параметры для поворота и масштабирования изображений. С помощью этих функций вы можете создавать динамичные и визуально привлекательные игры и приложения.

Статьи по данной тематике: