Pygame - Lật hình ảnh

Category: Pygame

Trong bài viết này, chúng ta sẽ xem cách lật hình ảnh bằng Pygame.

Để lật hình ảnh, chúng ta cần sử dụng phương thức pygame.transform.flip(Surface, xbool, ybool) được gọi để lật hình ảnh theo hướng dọc hoặc hướng ngang tùy theo nhu cầu của chúng ta.

Cú pháp:

pygame.transform.flip(Surface, xbool, ybool)

Lật hình ảnh theo chiều dọc

Trong ví dụ này, chúng ta phải lật ảnh theo chiều dọc. Chúng ta sẽ sử dụng pygame.transform.flip() để hiển thị ảnh theo chiều dọc. Truyền xbool là True và ybool là False để ảnh được lật theo chiều dọc.

Đầu vào được sử dụng:

# import pygame và sys để sử dụng các chức năng cần thiết
import pygame
import sys

from pygame.locals import *

# Khởi tạo tất cả các module đã import trong pygame
pygame.init()

# Đặt tiêu đề cửa sổ
pygame.display.set_caption('GeeksforGeeks')

# Tạo màn hình với kích thước 600x400
screen = pygame.display.set_mode((600, 400), 0, 32)

# Tải ảnh (chú ý: đường dẫn ảnh phải đúng, ví dụ 'image.png' phải tồn tại)
img = pygame.image.load('image.png')

# Vòng lặp chính của chương trình
while True:
    
    # Đổ màu trắng cho toàn bộ màn hình (RGB: 255,255,255)
    screen.fill((255, 255, 255))
    
    # Tạo bản sao của ảnh gốc
    img_copy = img.copy()
    
    # Lật ảnh theo chiều ngang (True), không lật theo chiều dọc (False)
    img_with_flip = pygame.transform.flip(img_copy, True, False)
    
    # Vẽ ảnh đã lật lên màn hình tại vị trí (170, 100)
    screen.blit(img_with_flip, (50 + 1 * 120, 100))
    
    # Bắt sự kiện đóng cửa sổ
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    # Cập nhật nội dung hiển thị
    pygame.display.update()

Đầu ra

Lật hình ảnh theo hướng ngang 

Trong ví dụ này, chúng ta phải lật hình ảnh theo chiều ngang. Đối với ví dụ này, xbool được truyền vào là False và ybool là True để lật hình ảnh theo chiều ngang.

Chương trình:

# import pygame và sys
import pygame
import sys

from pygame.locals import *

# pygame.init() sẽ khởi tạo tất cả các module đã import
pygame.init()
pygame.display.set_caption('GeeksforGeeks')

# kích thước cửa sổ sẽ hiển thị trên màn hình
screen = pygame.display.set_mode((600, 400), 0, 32)

# pygame.image.load() sẽ trả về đối tượng chứa hình ảnh
img = pygame.image.load('image.png')

while True:
    
    # màu nền
    screen.fill((255, 255, 255))
    
    # sao chép hình ảnh
    img_copy = img.copy()
    
    # pygame.transform.flip() sẽ lật hình ảnh
    img_with_flip = pygame.transform.flip(img_copy, False, True)
    
    # surface.blit() dùng để vẽ Surface nguồn lên Surface đích
    screen.blit(img_with_flip, (50 + 1 * 120, 100))
    
    # lắng nghe sự kiện thoát khỏi màn hình
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    # cập nhật khung hình mỗi giây
    pygame.display.update()

Đầu ra

Published on Jul 28, 2025

Related Posts