Grafika Komputer - Memuat Gambar dengan Pygame - P7
Manipulasi Gambar dengan Pygame
Tujuan Praktikum
- Memahami cara memuat gambar menggunakan pygame.image.load()
- Mengatur ukuran gambar sesuai kebutuhan
- Menggabungkan beberapa gambar (background dan foreground)
- Mengimplementasikan manipulasi gambar dasar dengan Pygame
Tools dan Library yang Diperlukan
- Python 3.x
- Pygame library
- Text editor (VS Code, PyCharm, atau lainnya)
Contoh Gambar :
- Kelinci:

- Rumput:

Konsep Dasar
- Memuat Gambar dengan pygame.image.load() Fungsi ini digunakan untuk memuat gambar dari file ke dalam program.
gambar = pygame.image.load('nama_file.jpg')
- Mengatur Ukuran Gambar Gambar dapat diubah ukurannya menggunakan pygame.transform.scale()
gambar_baru = pygame.transform.scale(gambar, (lebar, tinggi))
- Menampilkan Gambar Gambar ditampilkan menggunakan blit() pada surface:
screen.blit(gambar, (x, y))
Contoh Program Lengkap, silahkan simpan dengan nama praktikum7_load-image.py:
import pygame
import sys
# Inisialisasi Pygame
pygame.init()
# Set ukuran layar
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Praktikum 6 - Manipulasi Gambar")
# Warna
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
# Memuat gambar background
try:
background = pygame.image.load('grase.jpeg') # Ganti dengan path gambar Anda
# Mengatur ukuran background sesuai layar
background = pygame.transform.scale(background, (SCREEN_WIDTH, SCREEN_HEIGHT))
except:
print("File background.jpg tidak ditemukan!")
# Buat background default jika file tidak ditemukan
background = pygame.Surface((SCREEN_WIDTH, SCREEN_HEIGHT))
background.fill((100, 150, 200)) # Warna biru muda
# Memuat gambar foreground (karakter atau objek)
try:
character = pygame.image.load('kelinci.webp') # Ganti dengan path gambar Anda
# Mengatur ukuran character
character_width = 200
character_height = 300
character = pygame.transform.scale(character, (character_width, character_height))
except:
print("File character.png tidak ditemukan!")
# Buat karakter default jika file tidak ditemukan
character = pygame.Surface((200, 300))
character.fill((255, 0, 0)) # Warna merah
# Posisi character (di tengah layar)
character_x = (SCREEN_WIDTH - character.get_width()) // 2
character_y = (SCREEN_HEIGHT - character.get_height()) // 2
# Font untuk teks
font = pygame.font.Font(None, 36)
# Loop utama
running = True
clock = pygame.time.Clock()
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
# Menggambar background
screen.blit(background, (0, 0))
# Menggambar character di atas background
screen.blit(character, (character_x, character_y))
# Menambahkan teks informasi
info_text = font.render("Praktikum 6 - Load Image dengan Pygame", True, BLACK)
screen.blit(info_text, (50, 50))
# Update display
pygame.display.flip()
# Mengatur FPS
clock.tick(60)
# Keluar dari Pygame
pygame.quit()
sys.exit()
Penjelasan Kode
-
Inisialisasi Pygame
pygame.init()- Menginisialisasi semua modul Pygame yang diperlukan
-
Membuat Window
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))- Membuat window dengan ukuran yang ditentukan
-
Memuat dan Mengatur Gambar
background = pygame.image.load('grase.jpeg') background = pygame.transform.scale(background, (SCREEN_WIDTH, SCREEN_HEIGHT))- Memuat gambar dan mengubah ukurannya sesuai layar
-
Error Handling
try: # load gambar except: # buat gambar default- Menangani error jika file gambar tidak ditemukan
-
Game Loop
while running: # event handling # drawing # update displayLoop utama yang menangani input dan menampilkan gambar
Langkah-langkah Praktikum
Langkah 1: Persiapan File Gambar
- Siapkan dua gambar:
- grase.jpeg (gambar landscape/latar belakang)
- kelinci (gambar objek/karakter dengan transparansi)
- Letakkan gambar dalam folder yang sama dengan script Python
Langkah 2: Implementasi Dasar
- Buat file Python baru
- Copy kode contoh di atas
- Sesuaikan nama file gambar dengan yang Anda miliki
Langkah 3: Eksperimen
- Ubah ukuran karakter
- Ubah posisi karakter
- Coba tambahkan gambar ketiga
- Eksperimen dengan efek transformasi lainnya
contoh, tambah baris:
character_x, character_y = character_x+5, character_y+5
Format Gambar yang Didukung
- JPEG (.jpg, .jpeg)
- PNG (.png) - mendukung transparansi
- BMP (.bmp)
- GIF (.gif)
Tips dan Best Practices
- Gunakan PNG untuk gambar dengan transparansi
- Handle error ketika memuat gambar
- Scale gambar sesuai kebutuhan untuk optimasi performa
- Gunakan try-except untuk menangani file yang tidak ditemukan
- Bersihkan memory dengan
pygame.quit()
Troubleshooting:
Masalah:“File not found error”-
Solusi:Pastikan path gambar benar dan file ada di direktori yang tepat Masalah:Gambar terdistorsi-
Solusi:Pertahankan aspect ratio saat scaling Masalah:Performa lambatSolusi:Optimasi ukuran gambar dan gunakan gambar dengan resolusi sesuai kebutuhan
Catatan:
- Pastikan semua file gambar berada dalam direktori yang sama dengan script Python, atau berikan path yang benar ke file gambar tersebut.
By: IkhwanElyas@fedora.linux