cara memasukkan gambar menggunakan sdl
memasukkan gambar menggunakan sdl
jadi , gimana cara masukkin gambar menggunakan sdl? , caranya cukup mudah dan singkat guys . saya akan menunjukkan cara ini agar kalian tidak menggunakan bitmap (BMP) yang ukuran filenya terlalu besar dan tidak mendukung transparansi alpha , dan untuk mulai menggunakan format file lainnya seperti PNG , dll .
hal pertama yang perlu anda lakukan adalah mendownload SDL_image , versi terbaru dari website utama . anda juga dapat mengambil file ini dari perpustakaan SDL dan anda dapat membuat segalanya menjadi lebih mudah XD .
Mulailah dengan membuka project anda , dan dibawah akan ada pengaturan linker . Tambahkan SDL_image setelah SDLmain seperti ini :
mingw32
SDLmain
SDL_image
SDL
pertama , buka CSurface.h , sehingga kita dapat mencakup file header tambahan :
#ifndef _CSURFACE_H_ #define _CSURFACE_H_#include <SDL.h>#include <SDL_image.h>
Setelah itu semua dilakukan, buka CSurface.cpp dan cari fungsi onload. kode yang terlihat saat ini adalah :
SDL_Surface* CSurface::OnLoad(char* File) { SDL_Surface* Surf_Temp = NULL; SDL_Surface* Surf_Return = NULL; if((Surf_Temp = SDL_LoadBMP(File)) == NULL) { return NULL; } Surf_Return = SDL_DisplayFormat(Surf_Temp); SDL_FreeSurface(Surf_Temp); return Surf_Return;}
Ada dua perubahan untuk membuat ini, yang pertama adalah mengubah SDL_LoadBMP untuk IMG_Load. Yang kedua adalah mengubah SDL_DisplayFormat untuk SDL_DisplayFormatAlpha. Ingat Saya mengatakan BMP tidak mendukung lapisan alpha? Nah, PNGs lakukan! Dan jika Anda ingin menjaga lapisan alpha Anda harus menggunakan SDL_DisplayFormatAlpha bukan SDL_DisplayFormat. Jadi, kode kita akan terlihat seperti ini sekarang:
SDL_Surface* CSurface::OnLoad(char* File) {
SDL_Surface* Surf_Temp = NULL;
SDL_Surface* Surf_Return = NULL;
if((Surf_Temp = IMG_Load(File)) == NULL) {
return NULL;
}
Surf_Return = SDL_DisplayFormatAlpha(Surf_Temp);
SDL_FreeSurface(Surf_Temp);
return Surf_Return;
}
Akhirnya, jangan lupa untuk mengubah nama file yang Test Permukaan sedang mencoba untuk memuat di CApp_OnInit.cpp:
if((Surf_Test = CSurface::OnLoad("myimage.png")) == NULL) {
return false;
}
Dan kita selesai! Saya bilang itu akan singkat. Coba kompilasi, dan mencoba format file yang berbeda. Beberapa format umum yang didukung oleh SDL_image adalah:
BMP
GIF
PNG
JGP
PCX
TIF
dan lainnya ...
.png)

0 komentar: