Grafika Komputer - Memuat Gambar dengan Pygame - P6
Tujuan: Setelah menyelesaikan modul ini, mahasiswa diharapkan mampu:
- Memahami konsep
Surfacedalam Pygame. - Menggunakan fungsi
pygame.image.load()untuk memuat file gambar. - Menampilkan gambar yang telah dimuat ke jendela Pygame menggunakan
blit().
Dasar Teori
Dalam Pygame, semua elemen grafis yang ditampilkan seperti gambar, teks, atau bentuk, dianggap sebagai Surface. Anda bisa membayangkan Surface sebagai selembar kanvas kosong. Jendela utama aplikasi kita juga merupakan sebuah Surface khusus yang dibuat oleh pygame.display.set_mode().
Untuk bekerja dengan gambar dari file (seperti .PNG, .JPG, .GIF), Pygame menyediakan modul pygame.image. Fungsi utama yang akan kita gunakan adalah:
pygame.image.load("nama_file_gambar")
Fungsi ini akan membaca file gambar dari disk dan membuat objek Surface baru yang berisi data piksel dari gambar tersebut. Setelah gambar berhasil dimuat ke dalam sebuah variabel (yang kini menjadi Surface), kita perlu “menggambarnya” ke Surface lain (yaitu layar utama) agar bisa terlihat. Proses menggambar satu Surface ke Surface lain ini disebut blitting.
Langkah-langkah Praktikum
1. Persiapan
- Buat sebuah folder baru untuk proyek praktikum ini.
- Siapkan sebuah file gambar (misalnya
kelinci.webpataubackground.jpg) dan letakkan di dalam folder yang sama dengan file Python Anda.
2. Contoh Gambar Kelinci :

3. Kode Lengkap
Salin dan simpan kode berikut sebagai file Python (misalnya praktikum6_load_image.py):
import pygame
import sys
# 1. Inisialisasi semua modul Pygame
pygame.init()
# 2. Pengaturan ukuran layar
lebar_layar = 800
tinggi_layar = 600
layar = pygame.display.set_mode((lebar_layar, tinggi_layar))
pygame.display.set_caption("Praktikum 6: Memuat Gambar")
# 3. Memuat gambar dari file
# Pastikan Anda memiliki file gambar di folder yang sama dengan kode ini.
# Ganti 'kelinci.webp' dengan nama file gambar Anda.
try:
# pygame.image.load() akan mengembalikan sebuah Surface
gambar_pemain = pygame.image.load('kelinci.webp').convert_alpha()
gambar_pemain = pygame.transform.scale(gambar_pemain, (100,100))
except pygame.error as e:
# Jika file tidak ditemukan, program akan keluar
print(f"Error: Tidak dapat memuat gambar 'kelinci.webp'")
print(e)
sys.exit()
# 5. Game Loop (Perulangan Utama)
while True:
# 6. Manajemen Event (Input dari user)
for event in pygame.event.get():
# Jika user menekan tombol close (X)
if event.type == pygame.QUIT:
pygame.quit() # Keluar dari Pygame
sys.exit() # Keluar dari program
# 7. Logika dan Proses Menggambar
# Atur warna latar belakang layar (misalnya, abu-abu muda)
layar.fill((200, 200, 200))
# "Blit" atau gambar Surface 'gambar_pemain' ke 'layar'
# pada posisi yang ditentukan oleh 'posisi_gambar'
layar.blit(gambar_pemain, (50,50))
# 8. Update seluruh tampilan layar
pygame.display.flip()
Penjelasan Kode
pygame.init(): Perintah wajib untuk menjalankan Pygame.pygame.display.set_mode(...): Membuat jendela utama aplikasi. Ini adalahSurfaceutama tempat kita akan menggambar semua hal.pygame.image.load('gambar_saya.png'): Ini adalah fungsi inti dari praktikum ini. Ia mencari file bernamagambar_saya.pngdan memuatnya sebagaiSurfacebaru, yang kita simpan dalam variabelgambar_pemain..convert_alpha(): Ini adalah optimasi. Fungsi ini mengubah format piksel gambar agar cocok dengan format piksel layar, sehingga prosesblitakan berjalan jauh lebih cepat. Gunakan.convert()untuk gambar tanpa transparansi dan.convert_alpha()untuk gambar dengan transparansi (seperti file .PNG).gambar_pemain.get_rect(...): Metode ini sangat berguna untuk mendapatkan objekpygame.Rect(persegi) dari sebuahSurface.Rectmenyimpan informasi posisi (x, y) dan ukuran (lebar, tinggi) yang memudahkan kita untuk menempatkan gambar.layar.fill(...): MengisiSurfacelayar dengan satu warna solid. Ini dilakukan di setiap frame agar gambar dari frame sebelumnya terhapus.layar.blit(gambar_pemain, posisi_gambar): Ini adalah proses menggambar. Perintah ini menyalin piksel dariSurfacegambar_pemainkeSurfacelayarpada koordinat yang ditentukan olehposisi_gambar.pygame.display.flip(): Setelah semua proses menggambar selesai dalam satu frame, perintah ini akan memperbarui seluruh layar untuk menampilkannya kepada pengguna.
Latihan:
- Gantilah file
'kelinci.webp'dengan file gambar milik Anda. Jalankan program dan pastikan gambar Anda muncul di tengah layar. - Ubah posisi gambar agar muncul di pojok kiri atas. (Petunjuk: koordinat pojok kiri atas adalah
(0, 0)). - Muatlah gambar kedua ke dalam variabel yang berbeda, dan tampilkan kedua gambar tersebut di layar pada posisi yang berbeda.
By: IkhwanElyas@fedora.linux